netdev
[Top] [All Lists]

Re: [PATCH] PKT_SCHED: Initialize list field in dummy qdiscs

To: Thomas Graf <tgraf@xxxxxxx>
Subject: Re: [PATCH] PKT_SCHED: Initialize list field in dummy qdiscs
From: Patrick McHardy <kaber@xxxxxxxxx>
Date: Sun, 07 Nov 2004 17:19:58 +0100
Cc: davem@xxxxxxxxxxxxx, netdev@xxxxxxxxxxx, spam@xxxxxxxxxxxxx, kuznet@xxxxxxxxxxxxx, jmorris@xxxxxxxxxx
In-reply-to: <20041107140015.GA31969@xxxxxxxxxxxxxx>
References: <20041105163951.GY12289@xxxxxxxxxxxxxx> <418BB7D2.6060908@xxxxxxxxx> <20041105175812.GZ12289@xxxxxxxxxxxxxx> <418BC40E.8080402@xxxxxxxxx> <20041105194303.GA12289@xxxxxxxxxxxxxx> <20041106011843.GI12289@xxxxxxxxxxxxxx> <418C2D40.9020300@xxxxxxxxx> <20041106015931.GA28715@xxxxxxxxxxxxxx> <20041106145036.GB28715@xxxxxxxxxxxxxx> <418DE37E.2050504@xxxxxxxxx> <20041107140015.GA31969@xxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.3) Gecko/20041008 Debian/1.7.3-5
Thomas Graf wrote:

You mean before qdisc_lookup and until the reference is released
again? These are huge locking regions involving calls which might
sleep and possible qdisc_destroy calling paths.  So this won't
work quite well.

Who cares about huge sections while holding reference counts ?
qdisc_destroy won't destroy the qdisc until all references have
been dropped, that's the whole point of it.

So in my opinion we should screw that call_rcu because it doesn't
make much sense. In case dev_activate is not synchronized with
rtnl sempaphore we have to make sure that qdisc_destroy always
locks on qdisc_tree_lock which is not the case for a few paths as
of now, although I'm not sure if any of those actually ever call
qdisc_destroy with refcnt==1.
I'm also fixing up the remaining locking bugs, so before we start
reverting things lets just wait and see how it gets.

Regards
Patrick


<Prev in Thread] Current Thread [Next in Thread>