On Mon, Jun 15, 2015 at 12:19 PM, Andrea Arcangeli <aarcange@xxxxxxxxxx> wrote: > > Yes, it would leave the other blocked, how is it different from having > just 1 reader and it gets killed? Either is completely wrong. But the read() code can at least see that "I'm returning early due to a signal, so I'll wake up any other waiters". Poll simply *cannot* do that. Because by definition poll always returns without actually clearing the thing that caused the wakeup. So for "poll()", using exclusive waits is wrong very much by definition. For read(), you *can* use exclusive waits correctly, it just requires you to wake up others if you don't read all the data (either due to being killed by a signal, or because the read was incomplete). > If any qemu thread gets killed the thing is going to be noticeable, > there's no fault-tolerance-double-thread for anything. What does qemu have to do with anything? We don't implement kernel interfaces that are broken, and that can leave processes blocked when they shouldn't be blocked. We also don't implement kernel interfaces that only work with one program and then say "if that program is broken, it's not our problem". > I'm not saying doing wakeone is easy [...] Bullshit, Andrea. That's *exactly* what you said in the commit message for the broken patch that I complained about. And I quote: "Blocking reads can easily use exclusive wakeups. Poll in theory could too but there's no poll_wait_exclusive in common code yet" and I pointed out that your commit message was garbage, and that it's not at all as easy as you claim, and that your patch was broken, and your description was even more broken. The whole "poll cannot use exclsive waits" has _nothing_ to do with us not having "poll_wait_exclusive()". Poll *fundamentally* cannot use exclusive waits. Your commit message was garbage, and actively misleading. Don't make excuses. Linus -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>