Re: Quick review of -rt RCU-related patches

From: Paul E. McKenney
Date: Tue Oct 04 2011 - 19:15:51 EST


On Wed, Oct 05, 2011 at 12:12:35AM +0200, Peter Zijlstra wrote:
> On Wed, 2011-10-05 at 00:05 +0200, Thomas Gleixner wrote:
> > > peter_zijlstra-frob-rcu.patch
> > >
> > > Looks OK. Hmmm... Should this one go to mainline?
> > > Oh, looks equivalent, actually. So why the change?
> >
> > Peter ?
>
> - if (in_irq() || in_serving_softirq()) {
> + if (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_OFFSET)) {
>
>
> For !rt its equivalent yes, for rt otoh its not:
>
> int in_serving_softirq(void)
> {
> int res;
>
> preempt_disable();
> res = __get_cpu_var(local_softirq_runner) == current;
> preempt_enable();
> return res;
> }
>
> However invoke_softirq() will still add SOFTIRQ_OFFSET so we need to
> look at that to avoid recursion issues.
>
> The changelog describes this. So this change is a direct consequence of
> -rt frobbing the softirq stuff and thus isn't needed upstream.

Ah, thank you for the explanation!

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/