public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Richard B. Johnson" <jmodem@AbominableFirebug.com>
To: <eli@dev.mellanox.co.il>, <linux-kernel@vger.kernel.org>,
	<linux-net@vger.kernel.org>
Subject: Re: UDP packets loss
Date: Tue, 14 Nov 2006 17:54:10 -0500	[thread overview]
Message-ID: <026801c7083f$cc80e670$0732700a@djlaptop> (raw)
In-Reply-To: 60157.89.139.64.58.1163542547.squirrel@dev.mellanox.co.il

----- Original Message ----- 
From: <eli@dev.mellanox.co.il>
To: <linux-kernel@vger.kernel.org>; <linux-net@vger.kernel.org>
Sent: Tuesday, November 14, 2006 5:15 PM
Subject: UDP packets loss


> Hi,
> I am running a client/server test app over IPOIB in which the client sends
> a certain amount of data to the server. When the transmittion ends, the
> server prints the bandwidth and how much data it received. I can see that
> the server reports it received about 60% that the client sent. However,
> when I look at the server's interface counters before and after the
> transmittion, I see that it actually received all the data that the client
> sent. This leads me to suspect that the networking layer somehow dropped
> some of the data. One thing to not - the CPU is 100% busy at the receiver.
> Could this be the reason (the machine I am using is 2 dual cores - 4
> CPUs).
>
> The secod question is how do I make the interrupts be srviced by all CPUs?
> I tried through the procfs as described by IRQ-affinity.txt but I can set
> the mask to 0F bu then I read back and see it is indeed 0f but after a few
> seconds I see it back to 02 (which means only CPU1).
>
> One more thing - the device I am using is capable of generating MSIX
> interrupts.
>
> Thanks from advance
> Eli
>
> -

Yes. The packet counters tell that the data was received by the interface. 
However, the interface may be faster than the application that ultimately 
receives the data so that the kernel eventually runs out of buffers used to 
store the temporary data. When this happens, the kernel just drops them. 
Since UDP is not "reliable", it can't ask the sender to send them again when 
it has resources available. If you need all the data, use a TCP/IP stream 
protocol, in other words, a connection. That way, you will get all the data, 
even if you are writing it to a slow disk.

Cheers,
Dick Johnson
Penguin : Linux version 2.6.16.24 (somewhere). IT removed email  for 
engineers!
New Book: http://www.AbominableFirebug.com



  parent reply	other threads:[~2006-11-14 22:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-14 22:15 UDP packets loss eli
2006-11-14 22:35 ` Stephen Hemminger
2006-11-14 23:08   ` eli
2006-11-14 23:23     ` Stephen Hemminger
2006-11-15 13:03     ` Neil Horman
2006-11-14 23:14   ` Auke Kok
2006-11-15 21:57     ` John Heffner
2006-11-14 22:54 ` Richard B. Johnson [this message]
     [not found] <60157.89.139.64.58.1163542548.squirrel@dev.mellanox.co.il>
2006-11-16 18:51 ` eli
2006-11-16 19:01   ` John Heffner
2006-11-16 21:10     ` eli
2006-11-16 21:23       ` David Miller
2006-11-16 23:52   ` Alan
2006-11-17 14:48   ` Neil Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='026801c7083f$cc80e670$0732700a@djlaptop' \
    --to=jmodem@abominablefirebug.com \
    --cc=eli@dev.mellanox.co.il \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-net@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox