Re: UDP multicast packet loss not reported if TX ring overrun?
From: Eric Dumazet <hidden>
Date: 2009-08-25 16:27:27
Christoph Lameter a écrit :
On Tue, 25 Aug 2009, Eric Dumazet wrote:quoted
It wont be very nice, because it'll add yet another 32bits counter in each socket structure, for a unlikely use. While rx_drops can happen if application is slow.tx_drops happen if the application sends too fast. TX drop tracking is important due to the braindamaged throttling logic during send. If SO_SNDBUF is less than what happens to fit in the TX ring then the application will be throttled and no packet loss happens. If SO_SNDBUF is set high then the TX ring will overflow and packets are dropped. We need some way to diagnose TX drops per socket as long as we have that mind boggling issue. TX drops means that one should reduce the size of the sendbuffer in order to get better throttling which reduces packet loss.quoted
Also, tx_drops might be done later and not noticed. Please read this old (and usefull) thread, with Alexey words... http://oss.sgi.com/archives/netdev/2002-10/msg00612.html http://oss.sgi.com/archives/netdev/2002-10/msg00617.html So I bet your best choice is to set IP_RECVERR, as mentioned in 2002 by Jamal and Alexey :)I read this just yesterday. IP_RECVERR means that the application wants to see details on each loss. We just want some counters that give us accurate statistics to gauge where packet loss is occurring. Applications are usually not interested in tracking the fate of each packet.
Yep, but IP_RECVERR also has the side effect of letting kernel returns -ENOBUFS error in sending and congestion, which was your initial point :)