Re: want opinions on possible glitch in 2.4 network error reporting

From: Andi Kleen (ak@suse.de)
Date: Wed Feb 06 2002 - 21:47:48 EST


Ion Badulescu <ionut@cs.columbia.edu> writes:
> I'll state again: if data (UDP or otherwise) is lost after sendto()
> returns success but before it hits the wire, something is BROKEN in that
> IP stack.

Your proposal would break select(). It would require UDP sendmsg to block
when the TX queue is full. Most applications using select do
not send the socket non blocking. If they select for writing and the
kernel signals the socket writable they expect not to block in the write.
As long as the only thing controlling the blocking is the per socket
send buffer that works out as long as the application is careful enough
not to fill its send buffer. If you would put the TX queue into the
blocking equation too this cannot be guaranteed anymore because the TX queue
is shared between all local processes and even forwarding. You would
get random blocking on select based applications, breaking them.

I BTW had a proposal for blocking the sender in TX some time ago but it was
luckily shot down by people who knew better than me.

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



This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:00:57 EST