Re: [PATCH v6 1/3] perf: add PERF_RECORD_NAMESPACES to include namespaces related info

From: Peter Zijlstra
Date: Thu Feb 16 2017 - 05:37:06 EST


On Thu, Feb 16, 2017 at 11:28:24AM +0100, Peter Zijlstra wrote:
> On Wed, Feb 08, 2017 at 02:01:24PM +0530, Hari Bathini wrote:
> > @@ -862,6 +886,18 @@ enum perf_event_type {
> > */
> > PERF_RECORD_SWITCH_CPU_WIDE = 15,
> >
> > + /*
> > + * struct {
> > + * struct perf_event_header header;
> > + * u32 pid;
> > + * u32 tid;
> > + * u32 nr_namespaces;
> > + * struct namespace_link_info link_info[NAMESPACES_MAX];
> > + * struct sample_id sample_id;
> > + * };
> > + */
> > + PERF_RECORD_NAMESPACES = 16,
>
> This thing works by accident, there's a u32 hole in that structure.
> Also, the array isn't NAMESPACES_MAX long, its nr_namespaces, that's
> what its there for. The entries should be internally consistent.

Also, namespace_link_info isn't specified.

Easies would be to write something like:

{ char name[8];
u64 inode;
u64 dev; }[nr_namespace];