David Miller wrote:
1) A library for transmit load balancing functions, with an interface
that can be made visible to userspace. I can write this and test
it on real multiqueue hardware.
The whole purpose of this library is to set skb->queue_mapping
based upon the load balancing function.
Facilities will be added to handle virtualization port selection
based upon destination MAC address as one of the "load balancing"
methods.
Groovy.
I'm interested in working on a load balancer function that approximates
skb->queue_mapping = smp_processor_id()
I'd be happy to code and test in that direction, based on your lib.
2) Switch the default qdisc away from pfifo_fast to a new DRR fifo
with load balancing using the code in #1. I think this is kind
of in the territory of what Peter said he is working on.
I know this is controversial, but realistically I doubt users
benefit at all from the prioritization that pfifo provides. They
will, on the other hand, benefit from TX queue load balancing on
fast interfaces.
IMO the net driver really should provide a hint as to what it wants.
8139cp and tg3 would probably prefer multiple TX queue behavior to match
silicon behavior -- strict prio.
And I'll volunteer to write the net driver code for that, if people want
to see how things would look for that type of hardware packet scheduling.
3) Work on discovering a way to make the locking on transmit as
localized to the current thread of execution as possible. Things
like RCU and statistic replication, techniques we use widely
elsewhere in the stack, begin to come to mind.
Definitely.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html