Subject: Re: [PATCH]: Schedule correct qdisc in watchdog.

From: Jarek Poplawski <[email-masked]>
Date: Mon, 18 Aug 2008 09:47:27 +0000

On Mon, Aug 18, 2008 at 02:31:05AM -0700, David Miller wrote:
> From: Jarek Poplawski <[email-masked]>
> Date: Mon, 18 Aug 2008 09:10:12 +0000
> 
> > Yes, this was one of the reasons, but not the only one, and my oldbie
> > version of this fix could be found here as "02-fix1.patch":
> > 
> > http://permalink.gmane.org/gmane.linux.network/103039
> 
> This is what I get for failing to be able to follow that
> flurry of patches :)  I'll apply your version in the
> end, thanks.
> 
> > It's a bit different, because I think wd->qdisc can probably
> > point to the noop_qdisc (if it's the root qdisc).
> 
> noop_qdisc does not use the watchdogs as far as I can see.
> 
> But, if we are in dev_deactivate() state, root qdisc can
> be &noop_qdisc and scheduling that is fine and just a nop.

Maybe I wrote this wrong. wd->qdisc stores qdisc from the
qdisc_watchdog_init() time, and this could be &noop_qdisc.
So qdisc_root() would schedule wrong qdisc later. BTW, my
version would probably do the same for root qdisc, but in
these tests there was a problem with leafs.

And of course, scheduling &noop_qdisc isn't bad, until we
sometimes schedule something else too.

Jarek P.