Re: [PATCH -tip 1/2] Add "notrace" to RCU function headers used byftrace.

From: Paul E. McKenney
Date: Mon Aug 24 2009 - 22:04:19 EST


On Mon, Aug 24, 2009 at 07:38:51PM -0400, Steven Rostedt wrote:
>
> On Mon, 24 Aug 2009, Paul E. McKenney wrote:
>
> > Both rcu_read_lock_sched_notrace() and rcu_read_unlock_sched_notrace()
> > are used by ftrace, and thus need to be marked "notrace". Unfortunately,
> > my naive assumption that gcc would see the inner "notrace" does not hold.
> > Kudos to Lai Jiangshan for noting this.
> >
> > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> > ---
> > include/linux/rcupdate.h | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
> > index ec90fc3..8b4422c 100644
> > --- a/include/linux/rcupdate.h
> > +++ b/include/linux/rcupdate.h
> > @@ -191,7 +191,7 @@ static inline void rcu_read_lock_sched(void)
> > __acquire(RCU_SCHED);
> > rcu_read_acquire();
> > }
> > -static inline void rcu_read_lock_sched_notrace(void)
> > +static inline notrace void rcu_read_lock_sched_notrace(void)
> > {
> > preempt_disable_notrace();
> > __acquire(RCU_SCHED);
> > @@ -209,7 +209,7 @@ static inline void rcu_read_unlock_sched(void)
> > __release(RCU_SCHED);
> > preempt_enable();
> > }
> > -static inline void rcu_read_unlock_sched_notrace(void)
> > +static inline notrace void rcu_read_unlock_sched_notrace(void)
>
> Funny, inlines should not be traced. Is gcc ignoring the inlines here?

Well, that was my line of thinking as well, until Lai Jiangshan set
me straight. Version 4.x of gcc apparently decides on a case-by-case
basis.

Thanx, Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/