Messages in this thread | | | Date | Thu, 29 Jan 2009 05:42:27 +0100 | From | Oleg Nesterov <> | Subject | Re: [RFC v7] wait: prevent exclusive waiter starvation |
| |
On 01/28, Johannes Weiner wrote: > > Add abort_exclusive_wait() which removes the process' wait descriptor > from the waitqueue, iff still queued, or wakes up the next waiter > otherwise. It does so under the waitqueue lock. Racing with a wake > up means the aborting process is either already woken (removed from > the queue) and will wake up the next waiter, or it will remove itself > from the queue and the concurrent wake up will apply to the next > waiter after it. > > Use abort_exclusive_wait() in __wait_event_interruptible_exclusive() > and __wait_on_bit_lock() when they were interrupted by other means > than a wake up through the queue.
Imho, this all is right, and this patch should replace lock_page_killable-avoid-lost-wakeups.patch (except for stable tree).
But I guess we need maintainer's opinion, we have them in cc ;)
Oleg.
| |