Thread (73 messages) 73 messages, 8 authors, 2009-09-03

Re: UDP multicast packet loss not reported if TX ring overrun?

From: Sridhar Samudrala <hidden>
Date: 2009-08-26 22:11:07

On Wed, 2009-08-26 at 15:09 -0400, Christoph Lameter wrote:
On Wed, 26 Aug 2009, Sridhar Samudrala wrote:
quoted
quoted
 They are reported for IP and UDP.
Not clear what you meant by this.
The SNMP and UDP statistics show the loss. qdisc level does not show the
loss.
quoted
quoted
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 0
Even the Sent count seems to be too low. Are you looking at the right
device?
I would think that tc displays all queues? It says eth0 and eth0 is the
device that we sent the data out on.
quoted
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?
ip_local_out is returning ENOBUFS. Something at the qdisc layer is
dropping the packet and not incrementing counters.
Is the ENOBUFS return with your/Eric's patch? I thought you were
were seeing NET_XMIT_DROP without any patches.
quoted
I think we need to figure out where they are getting dropped and then
decide on the appropriate counter to be incremented.
Right. Where in the qdisc layer do drops occur?
The normal path where the packets are dropped when the tx qlen is exceeded is
  pfifo_fast_enqueue() -> qdisc_drop()
In this path, drops are counted.
The other place is in dev_queue_xmit(), but you are not hitting that case too.

So it looks like there is another place where they are getting dropped.

Thanks
Sridhar




Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help