From: Ben Greear <greearb@candelatech.com>
To: hadi@cyberus.ca
Cc: "Feldman, Scott" <scott.feldman@intel.com>,
Jeff Garzik <jgarzik@pobox.com>,
netdev@oss.sgi.com, ricardoz@us.ibm.com
Subject: Re: [e1000 2.6 10/11] TxDescriptors -> 1024 default
Date: Fri, 12 Sep 2003 11:12:32 -0700 [thread overview]
Message-ID: <3F620C90.5090903@candelatech.com> (raw)
In-Reply-To: <1063370664.1028.85.camel@jzny.localdomain>
jamal wrote:
> On Fri, 2003-09-12 at 01:13, Feldman, Scott wrote:
>>On the other hand, if we're always running the descriptor ring near
>>empty, we've got other problems. It seems to reason that it doesn't
>>matter how big the ring is if we're in that situation. If the CPU can
>>overrun the device, expanding the queues between the CPU and the device
>>may help with bursts but gets you nothing for a sustained load.
>>
>
>
> Well, theres only one way out that device ;-> and it goes out at a max
> rate of Gige. If you have sustained incoming rates from the CPU(s) of
> greater than Gige, then you are fucked anyways and you are better to
> drop at the scheduler queue.
I have seen greater packets-per-second throughput when I increase the TxDescriptor
ring (and RxDescriptor ring) when using pktgen, which checks for enqueue errors
and re-queues as needed. So, it could help the case where we are running
at very high sustained speeds (or high packets-per-second rates).
>>I flunked that queuing theory class anyway, so what do I know? Every
>>time I get stuck in a traffic slug on the freeway, I think about that
>>class. Hey, that means my car is like an skb, so maybe longer roads
>>would help? Not!
>
>
>
> Note we do return an indication that the packet was dropped. What you do
> with that information is relative. TCP makes use of it in the kernel
> which makes sense. UDP congestion control is mostly under the influence
> of the UDP app in user space. The impedance between user space and
> kernel makes that info useless to the UDP app especially in cases when
> the system is overloaded (which is where this matters most). This is of
> course theory and someone who really wants to find out should
> experiment. I would be pleasantly shocked if it turned out the info to
> the UDP app was useful. An interesting thing to try , which violates
> UDP, is to have UDP requeue a packet back to the socket queue in the
> kernel everytime an indication is received that the scheduler queue
> dropped the packet. User space by virtue of UDP sock queue not emptying
> should find out soon and slow down.
Um, I doubt the UDP protocol says you MUST drop packets when you reach
congestion...it just says that you _CAN_ drop the packet. Slowing
down user-space is exactly what you want to do in this case because it
saves user-space CPU, and it saves the user-space program from having
to deal (so often) with dropped packets.
Already, if the socket queue is full, poll/select will block, you'll get
-EBUSY returned, and/or your application will block on a wait queue....
Any of these allow the user space program to immediately back off,
saving the whole system work.
> All this is really speculation:
> A UDP app that really care about congestion should factor it from an end
> to end perspective and use the big socket queues suggested to buffer
> things.
Big socket queues can cause your machine to over-run the scheduler queue,
if I understand Dave right. And lots of big queues everywhere can cause
your machine to OOM and lock up completely (see another recent thread).
>
> To give anology to your car, if you only find out half way later that
> there was a red light a few meters back then that info is useless. If
> you dont get hit and reverse you may find that infact the light has
> turned to green which is again useless ;->
So much better to have stopped the car earlier and kept him out of the
intersection in the first place :)
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
next prev parent reply other threads:[~2003-09-12 18:12 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-12 5:13 [e1000 2.6 10/11] TxDescriptors -> 1024 default Feldman, Scott
2003-09-12 12:44 ` jamal
2003-09-12 15:29 ` Donald Becker
2003-09-12 17:44 ` Ricardo C Gonzalez
2003-09-15 11:37 ` jamal
2003-09-12 18:12 ` Ben Greear [this message]
2003-09-12 18:31 ` Ricardo C Gonzalez
2003-09-15 11:29 ` jamal
[not found] <Pine.LNX.4.58.0405141430340.4622@fcat>
2004-05-18 14:34 ` Ricardo C Gonzalez
2004-06-02 19:11 ` Marc Herbert
[not found] <3F60DE5B.1010700@pobox.com>
2003-09-11 21:27 ` Ricardo C Gonzalez
-- strict thread matches above, loose matches on Subject: below --
2003-09-09 3:14 Feldman, Scott
2003-09-11 19:18 ` Jeff Garzik
2003-09-11 19:45 ` Ben Greear
2003-09-11 19:59 ` Jeff Garzik
2003-09-11 20:12 ` David S. Miller
2003-09-11 20:40 ` Ben Greear
2003-09-11 21:07 ` David S. Miller
2003-09-11 21:29 ` Ben Greear
2003-09-11 21:29 ` David S. Miller
2003-09-11 21:47 ` Ricardo C Gonzalez
2003-09-11 22:00 ` Jeff Garzik
2003-09-11 22:15 ` Ben Greear
2003-09-11 23:02 ` David S. Miller
2003-09-11 23:22 ` Ben Greear
2003-09-11 23:29 ` David S. Miller
2003-09-12 1:34 ` jamal
2003-09-12 2:20 ` Ricardo C Gonzalez
2003-09-12 3:05 ` jamal
2003-09-13 3:49 ` David S. Miller
2003-09-13 11:52 ` Robert Olsson
2003-09-15 12:12 ` jamal
2003-09-15 13:45 ` Robert Olsson
2003-09-15 23:15 ` David S. Miller
2003-09-16 9:28 ` Robert Olsson
2003-09-14 19:08 ` Ricardo C Gonzalez
2003-09-15 2:50 ` David Brownell
2003-09-15 8:17 ` David S. Miller
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=3F620C90.5090903@candelatech.com \
--to=greearb@candelatech.com \
--cc=hadi@cyberus.ca \
--cc=jgarzik@pobox.com \
--cc=netdev@oss.sgi.com \
--cc=ricardoz@us.ibm.com \
--cc=scott.feldman@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.