From: David Miller <davem@davemloft.net>
To: gaagaan@gmail.com
Cc: sri@us.ibm.com, rick.jones2@hp.com, krkumar2@in.ibm.com,
johnpol@2ka.mipt.ru, netdev@vger.kernel.org
Subject: Re: [RFC] New driver API to speed up small packets xmits
Date: Thu, 10 May 2007 13:57:07 -0700 (PDT) [thread overview]
Message-ID: <20070510.135707.10298706.davem@davemloft.net> (raw)
In-Reply-To: <46438336.5070408@gmail.com>
From: Gagan Arneja <gaagaan@gmail.com>
Date: Thu, 10 May 2007 13:40:22 -0700
> David Miller wrote:
> >
> > If the qdisc is packed with packets and we would just loop sending
> > them to the device, yes it might make sense.
> >
> > But if that isn't the case, which frankly is the usual case, you add a
> > non-trivial amount of latency by batching and that's bad exactly for
> > the kind of applications that send small frames.
> >
>
> I don't understand how transmitting already batched up packets in one go
> introduce latency.
Keep thinking :-)
The only case where these ideas can be seriously considered is during
netif_wake_queue(). In all other cases we go straight to the device
from sendmsg(), since there is space in the TX ring, and we should
not try to batch as that will add latency.
So maybe find a solution in that area, some new driver interface that
can suck N packets out of a qdisc when netif_wake_queue() occurs.
If you look at the contexts in which netif_wake_queue() is called,
it's perfect, it already has the TX state of the driver locked, it has
the TX descriptor head/tail pointers handy, etc. and it's already
taken all the cache misses needed in order to work with this state.
next prev parent reply other threads:[~2007-05-10 20:57 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-10 14:53 [RFC] New driver API to speed up small packets xmits Krishna Kumar
2007-05-10 15:08 ` Evgeniy Polyakov
2007-05-10 15:22 ` Krishna Kumar2
2007-05-10 15:48 ` Evgeniy Polyakov
2007-05-10 16:08 ` jamal
2007-05-10 17:19 ` Rick Jones
2007-05-10 18:07 ` Sridhar Samudrala
2007-05-10 19:43 ` Gagan Arneja
2007-05-10 20:11 ` jamal
2007-05-10 20:14 ` Rick Jones
2007-05-10 20:15 ` jamal
2007-05-10 20:15 ` Gagan Arneja
2007-05-10 20:21 ` jamal
2007-05-10 20:25 ` Gagan Arneja
2007-05-11 5:22 ` Krishna Kumar2
2007-05-11 11:27 ` jamal
2007-05-10 20:37 ` David Miller
2007-05-10 20:40 ` Gagan Arneja
2007-05-10 20:57 ` David Miller [this message]
2007-05-11 6:07 ` Krishna Kumar2
2007-05-11 5:21 ` Krishna Kumar2
2007-05-11 5:20 ` Krishna Kumar2
2007-05-11 5:35 ` Gagan Arneja
2007-05-11 5:43 ` Krishna Kumar2
2007-05-11 5:57 ` Gagan Arneja
2007-05-11 6:06 ` Krishna Kumar2
2007-05-11 6:29 ` Gagan Arneja
2007-05-11 6:52 ` Krishna Kumar2
2007-05-10 18:13 ` Vlad Yasevich
2007-05-10 18:20 ` Rick Jones
2007-05-10 18:32 ` Vlad Yasevich
2007-05-10 18:40 ` Rick Jones
2007-05-10 18:59 ` Ian McDonald
2007-05-10 19:21 ` Vlad Yasevich
2007-05-10 19:26 ` Ian McDonald
2007-05-10 20:32 ` David Miller
2007-05-10 20:49 ` Rick Jones
2007-05-10 21:02 ` David Miller
2007-05-10 21:14 ` Gagan Arneja
2007-05-11 2:28 ` Stephen Hemminger
2007-05-11 5:01 ` Gagan Arneja
2007-05-11 5:04 ` Krishna Kumar2
2007-05-11 9:01 ` Evgeniy Polyakov
2007-05-11 9:18 ` Krishna Kumar2
2007-05-11 9:32 ` Evgeniy Polyakov
2007-05-11 9:52 ` Krishna Kumar2
2007-05-11 9:56 ` Evgeniy Polyakov
2007-05-11 11:30 ` jamal
2007-05-11 11:53 ` Evgeniy Polyakov
2007-05-11 12:15 ` jamal
2007-05-10 21:27 ` David Stevens
2007-05-10 21:40 ` David Miller
2007-05-10 21:50 ` Gagan Arneja
2007-05-10 22:06 ` David Miller
2007-05-11 9:46 ` Krishna Kumar2
2007-05-10 21:41 ` Eric Dumazet
2007-05-10 22:09 ` Rick Jones
2007-05-10 21:45 ` Rick Jones
2007-05-10 21:53 ` David Stevens
2007-05-10 20:21 ` Roland Dreier
2007-05-11 7:30 ` Krishna Kumar2
2007-05-11 11:21 ` Roland Dreier
2007-05-11 9:05 ` Andi Kleen
2007-05-11 8:32 ` Krishna Kumar2
2007-05-11 9:37 ` Andi Kleen
2007-05-11 8:50 ` Krishna Kumar2
2007-05-11 11:16 ` Roland Dreier
2007-05-13 6:00 ` Andi Kleen
2007-05-15 16:25 ` Roland Dreier
2007-05-15 20:18 ` David Miller
2007-05-15 20:52 ` Roland Dreier
2007-05-15 21:48 ` Michael Chan
2007-05-15 21:08 ` Roland Dreier
2007-05-15 22:05 ` Michael Chan
2007-05-15 21:28 ` David Miller
2007-05-18 7:04 ` Michael Chan
-- strict thread matches above, loose matches on Subject: below --
2007-05-11 7:14 Krishna Kumar2
[not found] <OF0CAD6D87.DBE62968-ON872572DC.0073646A-882572DC.0073BEC2@us.ibm.com>
2007-05-15 21:17 ` Roland Dreier
[not found] ` <OFF5654BB8.74EC8DCB-ON872572DC.00752079-882572DC.00756B23@us.ibm.com>
2007-05-15 21:25 ` Roland Dreier
[not found] ` <OF21D475A2.5E5C88DE-ON872572DC.00763DE4-882572DC.00768A7E@us.ibm.com>
2007-05-15 21:38 ` David Miller
2007-05-15 21:32 ` David Miller
[not found] ` <OF6757F56D.EE5984FD-ON872572DC.0081026C-882572DC.00814B8F@us.ibm.com>
2007-05-15 23:36 ` David Miller
2007-05-21 7:56 ` Herbert Xu
[not found] ` <OF9ABCD08D.2CD1B193-ON872572E3.007A6FC1-882572E3.007ACE1A@us.ibm.com>
2007-05-22 22:36 ` David Miller
[not found] ` <OFCF3EB7F8.9740C0C7-ON872572E3.007DADF6-882572E3.007E0E7B@us.ibm.com>
2007-05-22 23:04 ` David Miller
2007-05-22 23:12 ` Herbert Xu
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=20070510.135707.10298706.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=gaagaan@gmail.com \
--cc=johnpol@2ka.mipt.ru \
--cc=krkumar2@in.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=rick.jones2@hp.com \
--cc=sri@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).