Subject: How do I use multiqueue tx

From: Andrew Gallatin <[email-masked]>
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.

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