2011/8/6 Tanaka Akira <akr / fsij.org>:
> 2011/8/4 KOSAKI Motohiro <kosaki.motohiro / gmail.com>:
>
>> but look, datagram_poll() has another 30~ caller. (e.g. raw socket)
>
>> IOW, it's only a workaround for udp based broken application. not a
>> fix. If I understand correctly,
>> Linux kernel people don't have a plan to fix this issue by in-kernel
>> change because it makes
>> performance hurt.
>>
>> But, of course, if you are only talking about udp applications, you are correct.
>
> I assumed UDP, TCP and Unix socket.
> I don't know other sockets well.
>
> select() with blocking read works too well to feel it is broken.
> Is it a common sense in the kernel people that such applications are broken?

I don't know which broken or not broken. But they repeatedly refuse to
change this behavior.
Example,

http://groups.google.com/group/kernelarchive/browse_thread/thread/799ec608f1b7ea2d/43d21499059c922a?hl=ja&lnk=gst&q=select+checksum++socket#43d21499059c922a


> Apart from that, you picked up raw socket as an example.
> Is it mean that raw socket has a limitation which cannot receive a datagram
> with wrong checksum?

Yes, it can be blocked if the packet has a wrong checksum.