[lttng-dev] [PATCH lttng-modules] wrapper/perf.h: Fix kernel version condition

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Mon Dec 10 13:19:56 EST 2012


* Gabbasov, Andrew (Andrew_Gabbasov at mentor.com) wrote:
> Hi Mathieu,
> 
> I was looking at stable versions when setting all those versions ifdef's.
> Stable 2.6.36.x has "old" parameter (pid_t), while 2.6.37.x already has "new" parameter
> (struct task_struct *). That's why the checking statement with ">=" should have 2.6.37.
> 
> For example, see
> http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=blob;f=include/linux/perf_event.h;h=1d42c6ecd00a3d0b885c84f36e0c38dca976eee4;hb=refs/heads/linux-2.6.36.y
> line 871. This is the file in latest 2.6.36.y version, that has "old" pid_t parameter
> in perf_event_create_kernel_counter() function, so this change was introduced
> later than in 2.6.36.

OK! Patch merged into master and stable-2.1.

Thanks!

Mathieu

> 
> Thanks.
> 
> Best regards,
> Andrew
> ________________________________________
> From: Mathieu Desnoyers [mathieu.desnoyers at efficios.com]
> Sent: Monday, December 10, 2012 20:05
> To: Gabbasov, Andrew
> Cc: lttng-dev at lists.lttng.org
> Subject: Re: [lttng-dev] [PATCH lttng-modules] wrapper/perf.h: Fix kernel       version condition
> 
> * Andrew Gabbasov (andrew_gabbasov at mentor.com) wrote:
> > The pid_t parameter of function perf_event_create_kernel_counter
> > was changed to task_struct pointer starting from 2.6.37.x.
> 
> Did you check if 2.6.36.x stable kernels also introduced this change ?
> This might explain why in my own testing I did put 2.6.36 as kernel
> version cutoff.
> 
> Thanks,
> 
> Mathieu
> 
> >
> > Signed-off-by: Andrew Gabbasov <andrew_gabbasov at mentor.com>
> > ---
> >  wrapper/perf.h |    9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/wrapper/perf.h b/wrapper/perf.h
> > index 5dfa84b..5de205c 100644
> > --- a/wrapper/perf.h
> > +++ b/wrapper/perf.h
> > @@ -34,7 +34,7 @@ wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr,
> >  }
> >  #else /* defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) */
> >
> > -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
> > +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
> >  static inline struct perf_event *
> >  wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr,
> >                               int cpu,
> > @@ -43,7 +43,7 @@ wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr,
> >  {
> >       return perf_event_create_kernel_counter(attr, cpu, task, callback);
> >  }
> > -#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) */
> > +#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */
> >  static inline struct perf_event *
> >  wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr,
> >                               int cpu,
> > @@ -60,8 +60,11 @@ wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr,
> >       return perf_event_create_kernel_counter(attr, cpu, pid, callback);
> >  }
> >
> > +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */
> > +
> > +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36))
> >  #define local64_read(l)              atomic64_read(l)
> > -#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) */
> > +#endif
> >
> >  #endif /* defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) */
> >
> > --
> > 1.7.10.4
> >
> >
> > _______________________________________________
> > lttng-dev mailing list
> > lttng-dev at lists.lttng.org
> > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
> 
> --
> Mathieu Desnoyers
> Operating System Efficiency R&D Consultant
> EfficiOS Inc.
> http://www.efficios.com

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list