On Fri, 2005-22-07 at 15:52 -0700, David S. Miller wrote:

> Sounds OK.  What happens if the top-level queue pulls out
> a packet with a certain priority, and that priority's queue
> in the device is stopped?  Will it look for lower-priority
> packets and try to send those?  All of this kind of logic could
> result in some ugly loops :)

I am actually not fond of making any such change as i said yesterday to
Thomas/Patrick. Experience may prove me wrong.

Most of these pieces of h/ware have different approaches to how those
underlying rings are used sending out to the wire. As an example, it is
clear the wireless folks have time slots + prios as the desired qos
scheme. This will map nicely to a top qdisc that is based on deficit
roundrobin or even simple weighted roundrobin
i.e you map the time slots to weights and priorities on the rings to the
s/ware queue priorities. Hopefully Thomas can get that qdisc done.

Some of the other NICs have different schemes than the wireless people
need.
Example the freescale people have a strict priority as well as a
weighted round robin scheme. Depending on how the administrator
configures such a NIC (maybe via ethttool), they have also to attach to
it a specific root qdisc that maps correctly to the underlying rings.
And yet another example is the newer upcoming e1000 which is based on
just strict prio.

Setting the skb->prio to be used by the driver sounds reasonable.
Another alternative would be what was already mentioned to change the
call to hardware_start_transmit() to take a prio option.
The driver should take care of what that all means given that we have
views that differ depending on the h/ware.

cheers,
jamal
  


-
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