Subject: Re: [PATCH] NET: Multiqueue network device support.

From: Jeff Garzik <[email-masked]>
Date: Tue, 12 Jun 2007 17:46:20 -0400

David Miller wrote:
> From: Ben Greear <[email-masked]>
> Date: Tue, 12 Jun 2007 14:17:44 -0700
> 
>> Jeff Garzik wrote:
>>> If hardware w/ multiple queues will the capability for different MAC 
>>> addresses, different RX filters, etc. does it make sense to add that 
>>> below the net_device level?
>>>
>>> We will have to add all the configuration machinery at the per-queue 
>>> level that already exists at the per-netdev level.
>> Perhaps the mac-vlan patch would be a good fit.  Currently it is all
>> software based, but if the hardware can filter on MAC, it can basically
>> do mac-vlan acceleration.  The mac-vlan devices are just like 'real' ethernet
>> devices, so they can be used with whatever schemes work with regular devices.
> 
> Interesting.
> 
> But to answer Jeff's question, that's not really the model being
> used to implement multiple queues.
> 
> The MAC is still very much centralized in most designs.
> 
> So one way they'll do it is to support assigning N MAC addresses,
> and you configure the input filters of the chip to push packets
> for each MAC to the proper receive queue.
> 
> So the MAC will accept any of those in the N MAC addresses as
> it's own, then you use the filtering facilities to steer
> frames to the correct RX queue.

Not quite...  You'll have to deal with multiple Rx filters, not just the 
current one-filter-for-all model present in today's NICs.  Pools of 
queues will have separate configured characteristics.  The "steer" 
portion you mention is a bottleneck that wants to be eliminated.

	Jeff