[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A954535.2000304@gmail.com>
Date: Wed, 26 Aug 2009 16:22:45 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Christoph Lameter <cl@...ux-foundation.org>
CC: Sridhar Samudrala <sri@...ibm.com>,
David Stevens <dlstevens@...ibm.com>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
niv@...ux.vnet.ibm.com, sri@...ux.vnet.ibm.com
Subject: Re: UDP multicast packet loss not reported if TX ring overrun?
Christoph Lameter a écrit :
> I also see no UDP stats for packet drops. If Erics fix gets in then
> ip_push_pending_frames() will give us an error code on drop.
> Incrementing SNDBUFERRORS would require this simple patch.
>
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);
}
>
> UDP: Account for TX drops
>
> UDP layer is currently not incrementing error counters when packets are
> dropped. Use the SNDBUFERRORS to indicate packet drops on send.
>
> Signed-off-by: Christoph Lameter <cl@...ux-foundation.org>
>
> ---
> net/ipv4/udp.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> Index: linux-2.6/net/ipv4/udp.c
> ===================================================================
> --- linux-2.6.orig/net/ipv4/udp.c 2009-08-26 13:21:30.000000000 +0000
> +++ linux-2.6/net/ipv4/udp.c 2009-08-26 13:46:35.000000000 +0000
> @@ -559,6 +559,13 @@ static int udp_push_pending_frames(struc
>
> send:
> err = ip_push_pending_frames(sk);
> +
> + if (err)
> + /*
> + * Packet was dropped.
> + */
> + UDP_INC_STATS_USER(sock_net(sk),
> + UDP_MIB_SNDBUFERRORS, is_udplite);
> out:
> up->len = 0;
> up->pending = 0;
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists