Re: UDP multicast packet loss not reported if TX ring overrun?
From: Sridhar Samudrala <hidden>
Date: 2009-08-26 17:50:52
On Wed, 2009-08-26 at 12:29 -0400, Christoph Lameter wrote:
On Tue, 25 Aug 2009, Sridhar Samudrala wrote:quoted
Could you check if the UDP packet losses you are seeing are accounted for in qdisc drops with this patch. But i am not completely positive on this as this case happens only if qdisc is deactivated.This does not work. qdisc drops are still not reported.
OK. So the drops are not happening in dev_queue_xmit().
They are reported for IP and UDP.
Not clear what you meant by this.
Test tool crashes on first TX overrun:
clameter@rd-strategy3-deb64:~$ ./mcast -n1 -r400000
Receiver: Listening to control channel 239.0.192.1
Receiver: Subscribing to 0 MC addresses 239.0.192-254.2-254 offset 0
origin 10.2.36.123
Sender: Sending 400000 msgs/ch/sec on 1 channels. Probe interval=0.001-1
sec.
sendto: No buffer space available
Socket Send error
netstat reports exactly one packet loss:
clameter@rd-strategy3-deb64:~$ netstat -su
IcmpMsg:
InType3: 1
OutType3: 1
Udp:
298 packets received
0 packets to unknown port received.
0 packet receive errors
7232136 packets sent
SndbufErrors: 1
root@rd-strategy3-deb64:/home/clameter#tc -s qdisc show
qdisc pfifo_fast 0: dev eth0 root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1
1 1 1 1
Sent 6208 bytes 64 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0Even the Sent count seems to be too low. Are you looking at the right device? So based on the current analysis, the packets are getting dropped after the call to ip_local_out() in ip_push_pending_frames(). ip_local_out() is failing with NET_XMIT_DROP. But we are not sure where they are getting dropped. Is that right? I think we need to figure out where they are getting dropped and then decide on the appropriate counter to be incremented. Thanks Sridhar