Re: UDP recvmsg blocks after select(), 2.6 bug?

From: Richard B. Johnson
Date: Thu Oct 07 2004 - 10:06:14 EST


On Thu, 7 Oct 2004, Alan Cox wrote:

On Iau, 2004-10-07 at 15:07, Martijn Sipkema wrote:
Much can change between the select() and recvmsg - things outside of
kernel control too, and it's long been known.

There is no change; the current implementation just checks the validity of
the data in the recvmsg() call and not during select().

The accept one is documented by Stevens and well known. In the UDP case
currently we could get precise behaviour - by halving performance of UDP
applications like video streaming. We probably don't want to because we
can respond intelligently to OOM situations by freeing the queue if we
don't enforce such a silly rule.


Well if you accept(pun_intended) what Stevens says, then check his
web-site on what he teaches about select() and sockets. His demo
code certainly requires that select() not fail.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.5-1.358-noreg on an i686 machine (5537.79 BogoMips).
Note 96.31% of all statistics are fiction.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/