netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* How do I use multiqueue tx
@ 2008-06-03 15:34 Andrew Gallatin
  2008-06-03 16:10 ` David Miller
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Gallatin @ 2008-06-03 15:34 UTC (permalink / raw)
  To: netdev


I've done a patch to myri10ge which enables the use of multiple
transmit queues in our Linux driver using CONFIG_NETDEVICES_MULTIQUEUE
netdev subqueues.  Our current hardware uses multiple queues purely
for increasing host parallelism, not priority/QOS.  I'm looking for a
way, beyond pktgen, to actually use any transmit queue other than 0 to
increase parallelism.

Ideally, we would like to support hashing connections on egress to the
same tx/rx queue pair (and hence MSI-X irq) as our device will hash
the traffic to on ingress.  As far as I can tell, the qdisc layer is
where this hashing currently must happen.  Is this correct?  Or is
there a hook which would allow a driver to supply a hash function to
select the egress queue prior to its transmit function being called?

Otherwise, is my only option to write an entire new qdisc which does
the same sort of hashing as our nic, and force the admin to use tc to
select my custom qdisc?

Thanks,

Drew

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: How do I use multiqueue tx
  2008-06-03 15:34 How do I use multiqueue tx Andrew Gallatin
@ 2008-06-03 16:10 ` David Miller
  2008-06-03 17:13   ` Andrew Gallatin
  0 siblings, 1 reply; 3+ messages in thread
From: David Miller @ 2008-06-03 16:10 UTC (permalink / raw)
  To: gallatin; +Cc: netdev

From: Andrew Gallatin <gallatin@myri.com>
Date: Tue, 03 Jun 2008 11:34:18 -0400

> I've done a patch to myri10ge which enables the use of multiple
> transmit queues in our Linux driver using CONFIG_NETDEVICES_MULTIQUEUE
> netdev subqueues.  Our current hardware uses multiple queues purely
> for increasing host parallelism, not priority/QOS.  I'm looking for a
> way, beyond pktgen, to actually use any transmit queue other than 0 to
> increase parallelism.

Even though there are seperate per-TX-queue start/stop states
available to manage, all of the transmit path still uses a
single global lock to manage the packet queue in the generic
device structure.

So you will get zero extra parallelism by using the other queues.

I plan to work on this and have presented my ideas about how to
solve this problem in two presentations I gave in Japan several
months ago, and last week in Berlin.

http://vger.kernel.org/~davem/davem_tokyo08.pdf
http://vger.kernel.org/~davem/davem_berlin08.pdf

Don't even bother trying to get better TX parallelism at the
current time, it'll be so much easier to accomplish after
I do this development which I anticipate should be in a testable
state in about one month.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: How do I use multiqueue tx
  2008-06-03 16:10 ` David Miller
@ 2008-06-03 17:13   ` Andrew Gallatin
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Gallatin @ 2008-06-03 17:13 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

David Miller wrote:

 > I plan to work on this and have presented my ideas about how to
 > solve this problem in two presentations I gave in Japan several
 > months ago, and last week in Berlin.

Thank you for all the good information.  It is great to hear that
you're planning to work on this.

Thanks,

Drew

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-06-03 17:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-03 15:34 How do I use multiqueue tx Andrew Gallatin
2008-06-03 16:10 ` David Miller
2008-06-03 17:13   ` Andrew Gallatin

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).