MQ Patch.
Navdeep Parhar
np at FreeBSD.org
Tue Oct 29 21:03:45 UTC 2013
On 10/29/13 13:41, Andre Oppermann wrote:
> Let me jump in here and explain roughly the ideas/path I'm exploring
> in creating and eventually implementing a big picture for drivers,
> queues, queue management, various QoS and so on:
>
> Situation: We're still mostly based on the old 4.4BSD IFQ model with
> a couple of work-arounds (sndring, drbr) and the bit-rotten ALTQ we
> have in tree aren't helpful at all.
>
> Steps:
>
> 1. take the soft-queuing method out of the ifnet layer and make it
> a property of the driver, so that the upper stack (or actually
> protocol L3/L2 mapping/encapsulation layer) calls (*if_transmit)
> without any queuing at that point. It then is up to the driver
> to decide how it multiplexes multi-core access to its queue(s)
> and how they are configured.
It would work out much better if the kernel was aware of the number of
tx queues of a multiq driver and explicitly selected one in if_transmit.
The driver has no information on the CPU affinity etc. of the
applications generating the traffic; the kernel does. In general, the
kernel has a much better "global view" of the system and some of the
stuff currently in the drivers really should move up into the stack.
Regards,
Navdeep
More information about the freebsd-net
mailing list