Re: [PATCH 5/5][RFC] rcu: start new grace period from rcu_pending()

From: Oleg Nesterov
Date: Mon Jan 09 2006 - 12:57:19 EST


"Paul E. McKenney" wrote:
>
> On Mon, Jan 09, 2006 at 05:32:55PM +0300, Oleg Nesterov wrote:
> > Oleg Nesterov wrote:
> > >
> > > I think it is better to set ->qs_pending = 1 directly in __rcu_pending():
> >
> > This patch has a bug. I am sending a trivial fix, but now I am not
> > sure myself that 1 timer tick saved worth the code uglification.
>
> This is indeed an accident waiting to happen -- someone is bound to
> replace the "|" with an "||", a change that is too easy for someone
> to miss. Once Vatsa is satisfied with the CPU-hotplug aspects of
> this set of patches, if __rcu_pending() still has side-effects, I would
> suggest something like the following:
>
> int rcu_pending(int cpu)
> {
> int retval = 0;
>
> if (__rcu_pending(&rcu_ctrlblk, &per_cpu(rcu_data, cpu)))
> retval = 1;
> if (__rcu_pending(&rcu_bh_ctrlblk, &per_cpu(rcu_bh_data, cpu)))
> retval = 1;
> return retval;
> }
>
> A few more lines, but the intent is much more clear. And I bet that
> gcc generates reasonable code in either case.
>
> Or maybe this is just me...

No, me too. For some reasons I can't re-send the patch today, will do
tomorrow.

However, I am not sure anymore that this patch is a good idea. Exactly
because it adds side-effects to rcu_pending().

So, unless somebody on CC: list thinks it may be useful - let's forget
it.

Oleg.
-
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/