Re: [PATCH RFC tip/core/rcu 05/14] rcu: Abstract sequence counting from synchronize_sched_expedited()

Dan Carpenter
2015-07-09T08:44:24Z

On Wed, Jul 01, 2015 at 03:18:04PM -0700, Paul E. McKenney wrote:
> > > +/* Adjust sequence number for start of update-side operation. */
> > > +static void rcu_seq_start(unsigned long *sp)
> > > +{
> > > + WRITE_ONCE(*sp, *sp + 1);
> > > + smp_mb(); /* Ensure update-side operation after counter increment. */
> > > + WARN_ON_ONCE(!(*sp & 0x1));
> > > +}
> >
> > That wants to be an ACQUIRE, right?
>
> I cannot put the acquire in the WARN_ON_ONCE() because there
> are configurations where WARN_ON_ONCE() is compiled out.

I think WARN_ON_ONCE() always evaulates the condition. You are maybe
thinking of VM_WARN_ON_ONCE().

I'm on a different thread where we almost introduced a bug by using
VM_WARN_ONCE() instead of WARN_ONCE(). The VM_WARNING conditions had
long execute times so they are weird.

regards,
dan carpenter