Subject: Re: multiple Tx queues
To: None <>
From: David Young <>
List: tech-net
Date: 01/13/2004 03:08:04
On Sun, Jan 11, 2004 at 12:57:05PM -0500, Greg Troxel wrote:
>   I think that the NIC's multiple transmit priorities can help to
>   alleviate HOL blocking kind of like this: if_start puts all packets in
>   the normal-priority ring by default. In a HOL-blocking condition involving
>   weak/busy receiver W, if_starts puts packets for W into the low-priority
>   ring, and packets for a receiver R != W into the high-priority ring. When
>   the blocking condition is over, packets for W go into the low-priority
>   ring until its weak/busy condition ends. Packets for receivers R !=
>   W go into the normal-priority ring.
> ... I suppose you could implement the above
> scheme, except that it isn't immediately clear how W is fingered,
> unless the kernel keeps track of the outgoing packets and scores
> receivers based on inter-transmit gap when the txcomplete interrupts
> happen.  At least that seems to be the hard part.

I don't think it has to be too much more complicated than that. The
inter-transmit gap might be misleading if the network is very busy,
but you can subtract from the length of each gap the duration of all
the packets Rx'd inside it.

> But the use of queues to mitigate problems from HOL blocking doesn't
> require any tagging or QOS processing; this is really about just the
> driver (or 802.11 layer, or more generally for all interfaces that
> use a per-receiver RTS which may not be forthcoming).

Agreed. However, since HOL-blocking mitigation is not the only app for
the prioritized rings, it seems like the feature deserves to be treated
as ALTQ accelerators in addition.


David Young             OJC Technologies      Urbana, IL * (217) 278-3933