[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080911.044255.245121628.davem@davemloft.net>
Date: Thu, 11 Sep 2008 04:42:55 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: herbert@...dor.apana.org.au
Cc: jarkao2@...il.com, netdev@...r.kernel.org
Subject: Re: [PATCH take 2] pkt_sched: Fix qdisc_watchdog() vs.
dev_deactivate() race
From: Herbert Xu <herbert@...dor.apana.org.au>
Date: Thu, 11 Sep 2008 21:00:35 +1000
> On Thu, Sep 11, 2008 at 03:49:55AM -0700, David Miller wrote:
> >
> > Well some kind of check has to be there.
> >
> > I _did_ remove it during my initial implementation, and that
> > turned into a reported performance regression.
>
> I see. How about looking at the queue that the head-of-qdisc
> packet maps to? That should be fairly cheap to compute.
This gets us back to the whole qdisc->ops->peek() discussion :)
And we don't have the qdisc lock here, taking it is undesirable,
and if we do take it we have to transfer that lock down into
__qdisc_run() which means adjusting all the other __qdisc_run()
callers.
It's very clumsy at best.
I therefore don't think it's wise peeking into the qdisc here.
But I do realize we have to do something about this, hmmm...
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists