netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andi Kleen <andi@firstfloor.org>
To: Krishna Kumar <krkumar2@in.ibm.com>
Cc: netdev@vger.kernel.org, Krishna Kumar <krkumar2@in.ibm.com>
Subject: Re: [RFC] New driver API to speed up small packets xmits
Date: 11 May 2007 11:05:05 +0200	[thread overview]
Message-ID: <p73wszfenni.fsf@bingen.suse.de> (raw)
In-Reply-To: <20070510145351.1390.77066.sendpatchset@K50wks273871wss.in.ibm.com>

Krishna Kumar <krkumar2@in.ibm.com> writes:

> Doing some measurements, I found that for small packets like 128 bytes,
> the bandwidth is approximately 60% of the line speed. To possibly speed
> up performance of small packet xmits, a method of "linking" skbs was
> thought of - where two pointers (skb_flink/blink) is added to the skb.

You don't need that. You can just use the normal next/prev pointers.
In general it's a good idea to lower lock overhead etc., the VM has
used similar tricks very successfully in the past.

There were some thoughts about this earlier, but in highend
NICs the direction instead seems to go towards LRO (large receive offloading). 
 
LRO is basically like TSO, just for receiving. The NIC aggregates
multiple packets into a single larger one that is then processed by
the stack as one skb. This typically doesn't use linked lists, but an
array of pages.

Your scheme would help old NICs that don't have this optimization.
Might be a worth goal, although people often seem to be more interested
in modern hardware.

Another problem is that this setup typically requires the aggregate
packets to be from the same connection. Otherwise you will only
safe a short trip into the stack until the linked packet would need
to be split again to pass to multiple sockets. With that the scheme
probably helps much less.

The hardware schemes typically use at least some kind of hash to
aggregiate connections You might need to implement something similar
too if it doesn't save enough time.  Don't know if it would be very
efficient in software.

Or you could do this only if multiple packets belong to the same
single connection (basically with a one hit cache); but then it would
smell a bit like a benchmark hack.

-Andi

  parent reply	other threads:[~2007-05-11  8:07 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
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 [this message]
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=p73wszfenni.fsf@bingen.suse.de \
    --to=andi@firstfloor.org \
    --cc=krkumar2@in.ibm.com \
    --cc=netdev@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;
as well as URLs for NNTP newsgroup(s).