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