Subject: Re: Custom hardware Qdisc...

From: David Daney <[email-masked]>
Date: Fri, 11 Dec 2009 16:58:50 -0800

David Miller wrote:
> From: David Daney <[email-masked]>
> Date: Fri, 11 Dec 2009 10:26:08 -0800
> 
>> Our hardware (Octeon SOC) has fairly flexible packet output queuing
>> that can be done completely in hardware.
> 
> You haven't described sufficiently what your hardware is
> capable of.
> 

Up to 16 output queues per port. With (almost) any combination of 
absolute and weighted priorities between the various queues.

> Generally, implementing qdiscs specifically to support
> hardware features is not how things are handled.
> 

I think I could emulate the default pfifo Qdisk fairly well in hardware. 
  By making it a Qdisc, the user would still be able to switch to one of 
the software implementations if desired at runtime.

> But really we need to know a lot more about the details of your
> hardware to make any kind of real suggestions.
> 

Well see above for the overview.  I just wanted to get an idea if such 
an approach would be highly frowned upon before coding anything up.

We see significant cacheline bouncing in the Qdisc code and can increase 
  packet forwarding rates by 10%-15% by setting the txqueuelen to zero 
to disable the queuing.  I would like to see if the same thing can be 
achieved without throwing away the features of the Qdisc.

David Daney