Re: [PATCH] rfc: threaded epoll_wait thundering herd
[Posted May 8, 2007 by corbet]
| From: |
| Linus Torvalds <torvalds-AT-linux-foundation.org> |
| To: |
| Ulrich Drepper <drepper-AT-gmail.com> |
| Subject: |
| Re: [PATCH] rfc: threaded epoll_wait thundering herd |
| Date: |
| Mon, 7 May 2007 21:35:39 -0700 (PDT) |
| Cc: |
| Davide Libenzi <davidel-AT-xmailserver.org>,
Davi Arnaut <davi-AT-haxent.com.br>,
Andrew Morton <akpm-AT-linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel-AT-vger.kernel.org> |
| Archive-link: |
| Article,
Thread
|
On Mon, 7 May 2007, Ulrich Drepper wrote:
>
> This is absolutely not comparable. When read/write is canceled no
> data is lost. Some other thread might have to pick up the slack but
> that's it.
That's bullsh*t, Uli, and you know it.
Whatever the thread read() into it's buffer is effectively gone. You don't
know how much of the buffer was updated, so other threads cannot use the
data.
In fact, the exact *reverse* of what you claim is true. With "poll()" or
"select()", other threads *can* actually look at the result buffer, since
it has a known size and format that is independent of the return value,
unlike read().
But the real issue is that if you start cancellign threads without any
other synchronization, you are going to lose data anyway. Claiming
anything else is just silly. The whole scenario you talk about is
nonsensical, never mind that read() actually handles it *less* well rather
than better as you claim.
Linus
(
Log in to post comments)