* David S. Miller <[EMAIL PROTECTED]> 2005-07-24 18:08
> The key is what should happen when the ring for prio X fills
> up?  netif_stop_queue() in it's current form is the wrong
> thing to do, because it prevents lower priority packets from
> being queued which is exactly what we want to do if those
> queues have space.  The higher-prio packets will still go out
> first, of course, but queueing to lower prio rings should
> still be possible.

I agree but it is not a requirement for strict prio because
the lower prio queues would not be used anyway. Problems
arise if the hardware needs to know the queue length of the
lower prios as it is probably the case for 802.11e. My point
on this is solely that the current system is sufficient for
multiple TX rings being read in strict prio order.

> So we need some kind of netif_stop_queue_prio(dev, prio_nr)
> or similar.

Exactly.

> The next issue is how to demultiplex from the number of prios
> we want, to what the hardware actually supports if the latter
> is smaller.

That's what I meant with the non 1:1 mapping. I'm currently
looking into this, the easiest way is to have some callback
for the driver to report the number of tx rings. We can then
extend the prio qdisc to support bands=auto to automatically
get the same number of bands as rings and bands=N to get
a proportional mapping. As soon as I finished the patch to
make the prio qdisc do DRR we get some more flexibility for
all this.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to