Subject: Re: multiple Tx queues
To: None <tech-net@NetBSD.org>
From: David Young <dyoung@pobox.com>
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.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933