Re: [PATCH] tracing: Use kstrdup_const() for constant hist field type

From: Steven Rostedt

Date: Tue May 26 2026 - 21:50:56 EST


On Wed, 27 May 2026 10:10:15 +0900
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote:

> On Tue, 26 May 2026 17:51:05 +0800
> Yu Peng <pengyu@xxxxxxxxxx> wrote:
>
> > The HIST_FIELD_FL_CONST path duplicates the literal "u64" type with
> > kstrdup(), then releases it through kfree_const().
> >
> > Use kstrdup_const() instead, avoiding the allocation for a .rodata string
> > while keeping the matching free helper.
> >
>
> Since we are using kfree_const() to free hist_field->type,
> we can just point it as same as HIST_FIELD_FL_HITCOUNT case.
>

Agreed.

> Thanks,
>
> > Signed-off-by: Yu Peng <pengyu@xxxxxxxxxx>
> > ---
> > kernel/trace/trace_events_hist.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
> > index eb2c2bc8bc3d..6ffe9f4720a0 100644
> > --- a/kernel/trace/trace_events_hist.c
> > +++ b/kernel/trace/trace_events_hist.c
> > @@ -1992,7 +1992,7 @@ static struct hist_field *create_hist_field(struct hist_trigger_data *hist_data,
> > if (flags & HIST_FIELD_FL_CONST) {
> > hist_field->fn_num = HIST_FIELD_FN_CONST;
> > hist_field->size = sizeof(u64);
> > - hist_field->type = kstrdup("u64", GFP_KERNEL);
> > + hist_field->type = kstrdup_const("u64", GFP_KERNEL);

This can simply be made to point to "u64".

Thanks,

-- Steve

> > if (!hist_field->type)
> > goto free;
> > goto out;
> > --
> > 2.43.0
>
>