lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 08 Dec 2017 13:56:27 -0600
From:   Tom Zanussi <tom.zanussi@...ux.intel.com>
To:     Namhyung Kim <namhyung@...nel.org>
Cc:     rostedt@...dmis.org, tglx@...utronix.de, mhiramat@...nel.org,
        vedang.patel@...el.com, bigeasy@...utronix.de,
        joel.opensrc@...il.com, joelaf@...gle.com,
        mathieu.desnoyers@...icios.com, baohong.liu@...el.com,
        rajvi.jingar@...el.com, julia@...com, fengguang.wu@...el.com,
        linux-kernel@...r.kernel.org, linux-rt-users@...r.kernel.org,
        kernel-team@....com
Subject: Re: [PATCH v7 19/37] tracing: Generalize per-element hist trigger
 data

Hi Namhyung,

On Fri, 2017-12-08 at 22:06 +0900, Namhyung Kim wrote:
> On Wed, Dec 06, 2017 at 04:38:00PM -0600, Tom Zanussi wrote:
> > Up until now, hist triggers only needed per-element support for saving
> > 'comm' data, which was saved directly as a private data pointer.
> > 
> > In anticipation of the need to save other data besides 'comm', add a
> > new hist_elt_data struct for the purpose, and switch the current
> > 'comm'-related code over to that.
> > 
> > Signed-off-by: Tom Zanussi <tom.zanussi@...ux.intel.com>
> > ---
> >  kernel/trace/trace_events_hist.c | 76 +++++++++++++++++++++++-----------------
> >  1 file changed, 43 insertions(+), 33 deletions(-)
> > 
> > diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
> > index f75f7bc..3aeab8e 100644
> > --- a/kernel/trace/trace_events_hist.c
> > +++ b/kernel/trace/trace_events_hist.c
> > @@ -289,6 +289,10 @@ static struct hist_field *find_var(struct hist_trigger_data *hist_data,
> >  	return NULL;
> >  }
> >  
> > +struct hist_elt_data {
> > +	char *comm;
> > +};
> > +
> >  static const char *hist_field_name(struct hist_field *field,
> >  				   unsigned int level)
> >  {
> > @@ -503,45 +507,61 @@ static inline void save_comm(char *comm, struct task_struct *task)
> >  	memcpy(comm, task->comm, TASK_COMM_LEN);
> >  }
> >  
> > -static void hist_trigger_elt_comm_free(struct tracing_map_elt *elt)
> > +static void hist_elt_data_free(struct hist_elt_data *elt_data)
> > +{
> > +	kfree(elt_data->comm);
> > +	kfree(elt_data);
> > +}
> > +
> > +static void hist_trigger_elt_data_free(struct tracing_map_elt *elt)
> >  {
> > -	kfree((char *)elt->private_data);
> > +	struct hist_elt_data *elt_data = elt->private_data;
> > +
> > +	hist_elt_data_free(elt_data);
> >  }
> >  
> > -static int hist_trigger_elt_comm_alloc(struct tracing_map_elt *elt)
> > +static int hist_trigger_elt_data_alloc(struct tracing_map_elt *elt)
> >  {
> >  	struct hist_trigger_data *hist_data = elt->map->private_data;
> > +	unsigned int size = TASK_COMM_LEN + 1;
> 
> AFAIK you don't need to do '+ 1' since task->comm is always terminated
> by a NUL character using strlcpy().
> 

Good point, will change.

Thanks,

Tom


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ