Subject: Re: [NET_SCHED 00/10]: ktime clocksource + hrtimer

From: Patrick McHardy <[email-masked]>
Date: Fri, 16 Mar 2007 13:45:32 +0100

Thomas Graf wrote:
> * Patrick McHardy <[email-masked]> 2007-03-16 10:42
> 
>>David Miller wrote:
>>
>>>It would be nice to figure out why CBQ isn't working for
>>>you, I know at least some folks have used it successfully
>>>at some point.
>>
>>Probably my own incompetence, I'll see if I can find some
>>scripts that are known to work.
> 
> 
> I'll complain if it stops working, I'm still using CBQ to
> keep rsync and other bulk flows from interfering with ssh.
> HTB just doesn't have the same homy touch :-)

:)

I managed to find a working script in the meantime and discovered
a bug in my changes, with this patch on top it seems to works fine.

[NET_SCHED]: sch_cbq: fix watchdog scheduled too late

q->now is increased during dequeue and doesn't contain the current time
afterwards, resulting in a too large timeout value for the qdisc watchdog.
Use "now" instead, which still contains the current time.

Signed-off-by: Patrick McHardy <[email-masked]>

---
commit b832b2f5f076cdd050b5b142dae10fcca874a4eb
tree 19b7dc63ace14cc4a5c0d6d6561487185aef8fdd
parent 9b85e807e5971a7ceff45ac450392909ea1c6954
author Patrick McHardy <[email-masked]> Fri, 16 Mar 2007 13:12:17 +0100
committer Patrick McHardy <[email-masked]> Fri, 16 Mar 2007 13:12:17 +0100

 net/sched/sch_cbq.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index 0491fad..d83414d 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -1070,7 +1070,7 @@ cbq_dequeue(struct Qdisc *sch)
 		sch->qstats.overlimits++;
 		if (q->wd_expires)
 			qdisc_watchdog_schedule(&q->watchdog,
-						q->now + q->wd_expires);
+						now + q->wd_expires);
 	}
 	return NULL;
 }