[ofa-general] Re: [PATCH 2/3][NET_BATCH] net core use batching
Jeff Garzik
jeff at garzik.org
Mon Oct 8 19:12:03 PDT 2007
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
More information about the general
mailing list