Make kernel aware of NIC queues
George Neville-Neil
gnn at neville-neil.com
Wed Feb 6 16:06:03 UTC 2013
On Feb 6, 2013, at 09:37 , Luigi Rizzo <rizzo at iet.unipi.it> wrote:
> On Wed, Feb 06, 2013 at 06:19:27PM +0400, Alexander V. Chernikov wrote:
>> Hello list!
>>
>> Today more and more NICs are capable of splitting traffic to different
>> Rx/TX rings permitting OS to dispatch this traffic on different CPU
>> cores. However, there are some problems that arises from using multi-nic
>> (or even singe multi-port NIC) configurations:
> ...
>> I propose implementing common API to permit drivers:
>> * read user-supplied number of queues/other queue options (e.g:
>> * notify kernel of each RX/TX queue being created/destroyed
>> * make binding queues to cores via given API
>> * Export data to userland (for example, via sysctl) to permit users:
>> a) quickly see current configuration
>> b) change CPU binding on-fly
>> c) change flowid numbers on-fly (with the possibility to set 1)
>> NIC-supplied hash 2) manually supplied value 3) disable setting M_FLOWID)
>>
>> Having common interface will help users to make network stack tuning
>> easier and puts us one step further to make (probably userland) AI which
>> can auto-tune system according to template ("router", "webserver") and
>> rc.conf configuration (lagg presense, etc..)
>>
>>
>> What do you guys think?
>
> this is certainly a good idea and a welcome one.
>
> Linux has tried to come up with a common framework to implement
> this kind of controls using "ethtool", and we should probably
> have a look at their approach and reuse it (or at least the good ideas)
> to avoid reinventing the same thing.
>
And, though Luigi didn't say it, I will, this should integrate with netmap.
Best,
George
More information about the freebsd-net
mailing list