Netdev List
 help / color / mirror / Atom feed
From: jamal <hadi@cyberus.ca>
To: Stephen Hemminger <shemminger@osdl.org>
Cc: John Heffner <jheffner@psc.edu>,
	"David S. Miller" <davem@davemloft.net>,
	rhee@eos.ncsu.edu, Yee-Ting.Li@nuim.ie, baruch@ev-en.org,
	netdev@oss.sgi.com
Subject: Re: netif_rx packet dumping
Date: 03 Mar 2005 18:40:06 -0500	[thread overview]
Message-ID: <1109893205.1091.364.camel@jzny.localdomain> (raw)
In-Reply-To: <20050303151606.3587394f@dxpl.pdx.osdl.net>

On Thu, 2005-03-03 at 18:16, Stephen Hemminger wrote:
> On 03 Mar 2005 17:26:51 -0500
> jamal <hadi@cyberus.ca> wrote:
> 
> > On Thu, 2005-03-03 at 17:02, John Heffner wrote:
> > > On Thu, 3 Mar 2005, Stephen Hemminger wrote:
> > > > Maybe a simple Random Exponential Drop (RED) would be more friendly.
> > > 
> > > That would probably not be appropriate.  This queue is only for absorbing
> > > micro-scale bursts.  It should not hold any data in steady state like a
> > > router queue can.  The receive window can handle the macro scale flow
> > > control.
> > 
> > recall this is a queue that is potentially shared by many many flows
> > from potentially many many interfaces i.e it deals with many many
> > micro-scale bursts.
> > Clearly, the best approach is to have lots and lots of memmory and to
> > make that queue real huge so it can cope with all of them all the time.
> > We dont have that luxury - If you restrict the queue size, you will have
> > to drop packets... Which ones?
> > Probably simplest solution is to leave it as is right now and just
> > adjust the contraints based on your system memmory etc.
> 
> Another alternative would be some form of adaptive threshold,
> something like adaptive drop tail described in this paper.
> http://www.ee.cityu.edu.hk/~gchen/pdf/ITC18.pdf
> 
> Since netif_rx is running at interrupt time, it has to be simple/quick.

Note we do have some form of "detection" in place which mauntains
history via EWMA through get_sample_stats(). This essentially tells you
if the average queue size is growing and how fast i.e a first order
differential. The idea was for drivers to use this information to back
off and not hit netif_rx() for a period of time. You could use that
scheme to kick in and adjust the backlog - i think that would be a cheap
effort (if you decouple it from rx softirq). This would be much simpler
than the scheme described in the paper.

I think to really make progress though, you need to "cheaply" recognize
things at a flow level. You dont have to be very accurate, something
like a bloom filter with timers to clear state would do fine. But thats
more work than above suggestion.

cheers,
jamal

  reply	other threads:[~2005-03-03 23:40 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-03 20:38 netif_rx packet dumping Stephen Hemminger
2005-03-03 20:55 ` David S. Miller
2005-03-03 21:01   ` Stephen Hemminger
2005-03-03 21:18   ` jamal
2005-03-03 21:21     ` Stephen Hemminger
2005-03-03 21:24       ` jamal
2005-03-03 21:32         ` David S. Miller
2005-03-03 21:54           ` Stephen Hemminger
2005-03-03 22:02             ` John Heffner
2005-03-03 22:26               ` jamal
2005-03-03 23:16                 ` Stephen Hemminger
2005-03-03 23:40                   ` jamal [this message]
2005-03-03 23:48                   ` Baruch Even
2005-03-04  3:45                     ` jamal
2005-03-04  8:47                       ` Baruch Even
2005-03-07 13:55                         ` jamal
2005-03-08 15:56                           ` Baruch Even
2005-03-08 22:02                             ` jamal
2005-03-22 21:55                             ` cliff white
2005-03-03 23:48                   ` John Heffner
2005-03-04  1:42                     ` Lennert Buytenhek
2005-03-04  3:10                       ` John Heffner
2005-03-04  3:31                         ` Lennert Buytenhek
2005-03-04 19:52                 ` Edgar E Iglesias
2005-03-04 19:54                   ` Stephen Hemminger
2005-03-04 21:41                     ` Edgar E Iglesias
2005-03-04 19:49             ` Jason Lunz
2005-03-03 22:01           ` jamal
2005-03-03 21:26 ` Baruch Even
2005-03-03 21:36   ` David S. Miller
2005-03-03 21:44     ` Baruch Even
2005-03-03 21:54       ` Andi Kleen
2005-03-03 22:04         ` David S. Miller
2005-03-03 21:57       ` David S. Miller
2005-03-03 22:14         ` Baruch Even
2005-03-08 15:42         ` Baruch Even
2005-03-08 17:00           ` Andi Kleen
2005-03-08 18:01             ` Baruch Even
2005-03-08 18:09             ` David S. Miller
2005-03-08 18:18               ` Andi Kleen
2005-03-08 18:37                 ` Thomas Graf
2005-03-08 18:51                   ` Arnaldo Carvalho de Melo
2005-03-08 22:16                   ` Andi Kleen
2005-03-08 18:27               ` Ben Greear
2005-03-09 23:57                 ` Thomas Graf
2005-03-10  0:03                   ` Stephen Hemminger
2005-03-10  8:33                   ` Andi Kleen
2005-03-10 14:08                     ` Thomas Graf
2005-03-31 16:33         ` Baruch Even
2005-03-03 22:03   ` jamal
2005-03-03 22:31     ` Baruch Even

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=1109893205.1091.364.camel@jzny.localdomain \
    --to=hadi@cyberus.ca \
    --cc=Yee-Ting.Li@nuim.ie \
    --cc=baruch@ev-en.org \
    --cc=davem@davemloft.net \
    --cc=jheffner@psc.edu \
    --cc=netdev@oss.sgi.com \
    --cc=rhee@eos.ncsu.edu \
    --cc=shemminger@osdl.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