Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Oct 2013 14:03:40 -0700
From:      Navdeep Parhar <np@FreeBSD.org>
To:        Andre Oppermann <andre@freebsd.org>, Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        Randall Stewart <rrs@lakerest.net>, "freebsd-net@freebsd.org" <net@freebsd.org>
Subject:   Re: MQ Patch.
Message-ID:  <527022AC.4030502@FreeBSD.org>
In-Reply-To: <52701D8B.8050907@freebsd.org>
References:  <40948D79-E890-4360-A3F2-BEC34A389C7E@lakerest.net>	<526FFED9.1070704@freebsd.org> <CA%2BhQ2%2BgTc87M0f5pvFeW_GCZDogrLkT_1S2bKHngNcDEBUeZYQ@mail.gmail.com> <52701D8B.8050907@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?527022AC.4030502>