On Tue, Mar 1, 2016 at 8:10 PM, Kyeong Yoo
<kyeong....@alliedtelesis.co.nz> wrote:
> This fix is for dsmark similar to 3557619f0f6f7496ed453d4825e24958ab1884e0,
> and makes use of qdisc_dequeue_peeked() instead of direct dequeue() call.
>
> First time, wrr peeks dsmark, which will then peek into sfq.
> sfq dequeues an skb and it's stored in sch->gso_skb.
> Next time, wrr tries to dequeue from dsmark, which will call sfq dequeue
> directly. This results skipping the previously peeked skb.
>
> So changed dsmark dequeue to call qdisc_dequeue_peeked() instead to use
> peeked skb if exists.


This part looks reasonable to me.

>
> Also replaced dsmark peek to use qdisc_peek_dequeued() which works correctly
> if previously peeked skb still exists.


But not this part, since sfq already calls qdisc_peek_dequeued()?

Reply via email to