Subject: Re: multiple Tx queues
To: None <tech-net@NetBSD.org>
From: David Young <firstname.lastname@example.org>
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
email@example.com Urbana, IL * (217) 278-3933