Subject: Re: [PATCH 1/2] cbq: incorrectly low bandwidth setting blocks limited traffic

From: Sergei Shtylyov <[email-masked]>
Date: Wed, 13 Aug 2014 16:45:28 +0400

Hello.

On 8/13/2014 4:38 PM, Vasily Averin wrote:

> Mainstream commit f0f6ee1f70c4eaab9d52cf7d255df4bd89f8d1c2 have side effect:

    Please also specify that commit's summary line in parens.

> if cbq bandwidth setting is less than real interface throughput
> non-limited traffic can delay limited traffic for a very long time.

> This happen because of q->now changes incorrectly in cbq_dequeue():
> in described scenario L2T is much greater than real time delay,
> and q->now gets an extra boost for each transmitted packet.

> Accumulated boost prevents update q->now, and blocked class can wait
> very long time until (q->now >= cl->undertime) will be true again.

> To fix the problem the patch updates q->now on each cbq_update() call.
> L2T-related pre-modification q->now was moved to cbq_update().

> My testing confirmed that it fixes the problem and did not discovered

   Discover.

> any side-effects.

> Signed-off-by: Vasily Averin <[email-masked]>

WBR, Sergei