Firstly, to avoid the confusion, let me repeat I think your patch is fine. I too thought that non-exclusive waiters do not care about the bit state and thus wake_page_function() can simply wake them all up. But then I did "git blame", found your commit 3510ca20ece0150 and came to conclusion there are reasons we should not do this. On 07/25, Linus Torvalds wrote: > > On Sat, Jul 25, 2020 at 3:14 AM Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > > > > In essense, this partly reverts your commit 3510ca20ece0150 > > ("Minor page waitqueue cleanups"). I mean this part: > > Well, no. I mean, it keeps the "always add to the fail" behavior. Ah, sorry for confusion, this doesn't matter. I didn't mean "fairness". What I tried to say. AFAICS before that commit we had (almost) the same behaviour you propose now: unlock_page/etc wakes all the non-exclusive waiters up. No? Or I misunderstood your reply? Quite possibly, too late for me... Oleg.