On Thu, 2006-06-04 at 18:29 +0200, Patrick McHardy wrote:
[..]

> There are basically two possibilities how to implement this. The less
> intrusive, but IMO more hackish one is to just handle this inside the
> qdiscs that require this operation by not requeueing the packet to
> the qdisc, but keeping a private reference somewhere. The disadvantage
> is that this distorts statistics and estimators, the classful qdisc
> would for example have more packets queued than the sum of all its
> inner qdiscs. The other possibility is to introduce a ->peek operation
> or a flag to ->dequeue and handle it within the reordering qdiscs.
> I think we only need to implement it for non-classful (or single-class)
> qdiscs, I can't imagine why anyone would add a scheduler as inner qdisc
> to a different scheduler, at least with the current ones.
> 
> Any preferences or suggestions? Otherwise I'll go with the second
> possibility.
> 

The second scheme looks better. The other way (mod to the second scheme)
is to have the dequeue "compensate for the last time" in the qdiscs i.e
if you over/undershot the last time because you computed lets say a
delay based on a packet which is no longer at the head of the queue then
you take that into account as well; note this suggestion implies it is
the non-work-conserving schedulers problem (which i think it is). 
i.e those schedulers need to be fixed with a new assumption that "the
packet you got this time may not be the same as the last one you used to
compute next-time-to-give-an-skb". 

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