Messages in this thread | | | Date | Wed, 12 May 2010 19:39:37 -0700 | Subject | Re: [PATCH 06/12] rwsem: wake queued readers when other readers are active | From | Michel Lespinasse <> |
| |
On Wed, May 12, 2010 at 5:22 AM, David Howells <dhowells@redhat.com> wrote: > Michel Lespinasse <walken@google.com> wrote: > >> In this situation, it would be perfectly fine to let threads B and C work >> in parallel as they each only want a read acquire on the rwsem. We can >> recognize this situation and let A wake B as long as there are no active >> writers on the rwsem. > > There can't be any active writers on the rwsem. An active writer must have > just been upped and is in the process of waking the first sleeper up.
Yes. My point is that by the point thread A (the writer that just got upped) gets around to waking B (a blocked reader), another reader C might have gotten active already. We don't want the nonzero active count (due to C) to prevent B from getting woken.
-- Michel "Walken" Lespinasse A program is never fully debugged until the last user dies. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |