RE: [UPDATED] [NET-NEXT PATCH 1/2] pkt_sched: Add multiqueue scheduler support

Duyck, Alexander H
2008-09-02T17:18:47Z

Jarek Poplawski wrote:
> On Tue, Sep 02, 2008 at 05:54:11AM +0000, Jarek Poplawski wrote:
> ...
>> OK, but I wonder if it's not enough to treat this as a
>> recommendation? Actually, since dequeuing is under the common lock
>> here, the main difference seems to be this checking for
>> subqueue_stopped could happen a bit earlier,
>
> Hmm.., actually a bit later... Then this should be a bit more exact?!
> Anyway, still looks safe to me.
>
> Jarek P.

Let me give an example of how this can go wrong. Lets say we use multiq as a leaf for each band in prio and two different bands have a packet for hw queue 1. If prio band 0 tries to pull and the leaf finds that queue 1 is stopped then dequeue returns null. A tx interrupt fires and the driver then wakes queue 1 since space is available. Then prio pull from band 1 and enqueues the packet on hw queue 1. The end result is the lower priority packet slipping in before the higher priority packet in the hardware queue.

The advantage to making this qdisc root is that you then have exactly one qdisc band per hardware queue. You can then place whatever qdiscs you want on each of the bands and the behavior will be consistent per queue.

Thanks,

Alex