Re: UDP multicast packet loss not reported if TX ring overrun?
From: Christoph Lameter <hidden>
Date: 2009-08-26 15:28:09
From: Christoph Lameter <hidden>
Date: 2009-08-26 15:28:09
On Wed, 26 Aug 2009, Eric Dumazet wrote:
I think it's already done in udp_sendmsg()>
Code starting at line 765 in net/ipv4/udp.c
/*
* ENOBUFS = no kernel mem, SOCK_NOSPACE = no sndbuf space. Reporting
* ENOBUFS might not be good (it's not tunable per se), but otherwise
* we don't have a good statistic (IpOutDiscards but it can be too many
* things). We could add another new stat but at least for now that
* seems like overkill.
*/
if (err == -ENOBUFS || test_bit(SOCK_NOSPACE, &sk->sk_socket->flags)) {
UDP_INC_STATS_USER(sock_net(sk),
UDP_MIB_SNDBUFERRORS, is_udplite);
}Right. That would mean the fix to ip_push_pending_frames() would also fix UDP tx drop accounting. ENOBUFS is then returned for two cases. 1. SNDBUF overflow 2. NIC TX overflow Hope that is not confusing.