Re: [RFC PATCH v2 2/2] locking/percpu-rwsem: Mark rwsem as non-spinnable in percpu_rwsem_release()

From: Matthew Wilcox
Date: Tue May 15 2018 - 13:39:07 EST


On Tue, May 15, 2018 at 09:57:44AM -0400, Waiman Long wrote:
> > Afaict the whole .owner=NULL thing in release already stops the spinners
> > dead, and the above 'fixes' the debug splat. And this avoids exposing
> > that horrible interface and keeps the mucking private to
> > rwsem/percpu_rwsem.
>
> Actually setting owner to NULL does not stop spinning. The code just
> assume that the lock is going to be freed and spin in the outer loop. We
> need some special value to indicate that spinning should be stopped. How
> about just exposing a special value for that in linux/rwsem.h? Any
> suggestion for a good name?

RWSEM_NO_OWNER