netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andi Kleen <ak@muc.de>
To: Leonid Grossman <leonid.grossman@neterion.com>
Cc: "'rick jones'" <rick.jones2@hp.com>,
	netdev@oss.sgi.com, "'Alex Aizman'" <alex@neterion.com>
Subject: Re: Intel and TOE in the news
Date: 21 Feb 2005 12:50:06 +0100
Date: Mon, 21 Feb 2005 12:50:06 +0100	[thread overview]
Message-ID: <20050221115006.GB87576@muc.de> (raw)
In-Reply-To: <200502210332.j1L3WkDD014744@guinness.s2io.com>

On Sun, Feb 20, 2005 at 07:31:55PM -0800, Leonid Grossman wrote:
> Yes, this is what we currently do; I was rather thinking about the option to
> indicate multiple packets in a single call (say as a linked list). 

For the non NAPI case the packet is just put into a queue 
anyways. If you want to process packets as lists then just the consumer 
of the queue would need to be changed. I agree that it would be a good 
idea to lower locking overhead. That would only help much though
if all the packets in a list belong to the same stream, otherwise
you need multiple locks anyways for different sockets and it would be useless.

For NAPI there would need to be some higher level changes for this.

The main problem is that someone has to go through all the protocol layers
and make sure they can process lists. Also it needs careful handling
in netfilter.

> > Most interesting would be to use per CPU TX completion 
> > interrupts using MSI-X and avoid bouncing packets around between CPUs.
> 
> Do you mean indicating rx packets to the same cpu that tx (for the same
> session) came from, or something else?

Just freeing TX packets on the same CPU as they were submitted.
This way the skb will always stay in the per CPU slab cache.

Should be straight forward: you hash the CPU number to the 8 transmit
queues in dev_queue_xmit, then give each queue an own TX MSI and set the 
irq affinity of its interrupt to its CPUs. 

If you have more than 8 CPUs there will be still some bouncing,
but e.g. on a NUMA system you could keep it at least node local
or near in the machine topology (2.6 has the necessary topology
information in the kernel for this now; just distance information
has to be still gotten from ACPI) 

Should be all possible to do from the driver without stack changes.

Using it usefully in RX is probably much harder and would need stack changes.

-Andi

  reply	other threads:[~2005-02-21 11:50 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-19  3:44 Intel and TOE in the news Jeff Garzik
2005-02-19  4:10 ` Lennert Buytenhek
2005-02-19 19:46   ` David S. Miller
2005-02-19 20:27     ` Andi Kleen
2005-02-19 20:32       ` Lennert Buytenhek
2005-02-20 16:46       ` Eugene Surovegin
2005-02-21 14:01         ` jamal
2005-02-20 19:45       ` rick jones
2005-02-20 21:20         ` Michael Richardson
2005-02-20 21:29         ` Andi Kleen
2005-02-20 22:43           ` Leonid Grossman
2005-02-20 23:07             ` Andi Kleen
2005-02-21  1:57               ` Alex Aizman
2005-02-21  2:37                 ` Jeff Garzik
2005-02-21 19:34                   ` Alex Aizman
2005-02-21 20:34                     ` Jeff Garzik
2005-02-22  0:50                       ` Alex Aizman
2005-02-21 11:37                 ` Andi Kleen
2005-02-21  3:31               ` Leonid Grossman
2005-02-21 11:50                 ` Andi Kleen [this message]
2005-02-21 13:28                   ` Thomas Graf
2005-02-21 14:03                     ` jamal
2005-02-21 14:17                       ` Thomas Graf
2005-02-21 14:31                         ` jamal
2005-02-21 15:34                           ` Thomas Graf
2005-02-21 15:48                             ` jamal
2005-02-21 16:40                               ` Thomas Graf
2005-02-21 17:03                                 ` jamal
2005-02-21 20:12                                   ` patrick mcmanus
2005-02-21 21:12                                     ` jamal
2005-03-06 11:21                                       ` Harald Welte
2005-02-21 21:41                                   ` Thomas Graf
2005-02-21 15:38                           ` Robert Olsson
2005-02-21 15:50                             ` jamal
2005-02-21 13:44             ` jamal
2005-02-21 16:52               ` Leonid Grossman
2005-02-21 17:11                 ` jamal
2005-02-21 18:02                   ` Leonid Grossman
2005-02-22 18:02                     ` Stephen Hemminger
2005-02-22 18:07                       ` Andi Kleen
2005-02-22 20:51                         ` Leonid Grossman
2005-02-22 21:20                           ` Rick Jones
2005-02-22 21:30                             ` Leonid Grossman
2005-02-22 21:42                               ` Rick Jones
2005-02-22 22:10                                 ` Leonid Grossman
2005-02-22 21:43                           ` Andi Kleen
2005-02-22 22:17                             ` Leonid Grossman
2005-02-22 22:42                               ` Andi Kleen
2005-02-22 22:51                                 ` Leonid Grossman
2005-03-14 20:22                   ` [ANNOUNCE] Experimental Driver for Neterion/S2io 10GbE Adapters Alex Aizman
2005-03-14 20:38                     ` David S. Miller
2005-03-14 20:53                       ` Leonid Grossman
2005-03-14 23:27                         ` Andi Kleen
2005-03-14 23:45                           ` Jeff Garzik
2005-03-15  0:32                             ` Leonid Grossman
2005-03-15  1:07                           ` Alex Aizman
2005-03-15  1:29                             ` Rick Jones
2005-03-15  2:28                               ` Leonid Grossman
2005-03-15 15:07                             ` Leonid Grossman
2005-03-15 15:55                               ` Leonid Grossman
2005-03-19 20:15                                 ` Andi Kleen
2005-03-19 22:19                                   ` Leonid Grossman
2005-03-20 13:40                                     ` jamal
2005-03-20 20:13                                       ` Leonid Grossman
2005-03-15  5:14                     ` Scott Feldman
2005-03-15  5:59                       ` Matt Mackall
2005-03-15  6:02                       ` Leonid Grossman
2005-02-22 17:27                 ` Intel and TOE in the news Andi Kleen
2005-02-19 20:29     ` Lennert Buytenhek
2005-03-02 13:48   ` Lennert Buytenhek
2005-03-02 17:34     ` Leonid Grossman
2005-02-21 13:59 ` P
2005-02-21 14:10   ` jamal
2005-02-21 22:44 ` Stephen Hemminger

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=20050221115006.GB87576@muc.de \
    --to=ak@muc.de \
    --cc=alex@neterion.com \
    --cc=leonid.grossman@neterion.com \
    --cc=netdev@oss.sgi.com \
    --cc=rick.jones2@hp.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).