All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarek Poplawski <jarkao2@o2.pl>
To: Patrick McHardy <kaber@trash.net>
Cc: David Miller <davem@davemloft.net>,
	Andrew Morton <akpm@linux-foundation.org>,
	netdev@vger.kernel.org,
	"bugme-daemon\@kernel-bugs\.osdl\.org"
	<bugme-daemon@kernel-bugs.osdl.org>,
	ranko@spidernet.net
Subject: Re: [NET]: gen_estimator: fix locking and timer related bugs [Re: [Bugme-new] [Bug 8668] New: HTB Deadlock]
Date: Thu, 28 Jun 2007 11:13:40 +0200	[thread overview]
Message-ID: <20070628091339.GC1618@ff.dom.local> (raw)
In-Reply-To: <46828179.5030404@trash.net>

On Wed, Jun 27, 2007 at 05:25:45PM +0200, Patrick McHardy wrote:
...
> Additionally there are a few more related problems that seem to be
> relicts from the timer when the estimator was qdisc specific and
> could rely on the rtnl or dev->qdisc_lock:
> 
> - the check whether the list is empty and a timer needs to be started
>   when adding a new estimator doesn't take the lock, so it races
>   against concurrent additions, which can result in the timer beeing
>   added twice or getting reinitialized after being added.
> 
> - the new estimator's next pointer is also set without holding the
>   lock, again racing against concurrent additions with possible
>   list corruption as a result.
> 
> - the timer deletion when killing an estimator is also not under
>   the lock and races against timer arming when adding a new estimator.
> 
> Fix by holding the lock around the entire list addition and initial
> timer arming. Removal is not done explicitly anymore, instead the
> timer function only rearms the timer when there are still estimators
> present.
...
> @@ -202,7 +201,6 @@ void gen_kill_estimator(struct gnet_stats_basic *bstats,
>  	struct gen_estimator *est, **pest;
>  
>  	for (idx=0; idx <= EST_MAX_INTERVAL; idx++) {
> -		int killed = 0;
>  		pest = &elist[idx].list;
>  		while ((est=*pest) != NULL) {

So, maybe this list walking here needs some locking too?

Jarek P.

  parent reply	other threads:[~2007-06-28  9:05 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-8668-10286@http.bugzilla.kernel.org/>
2007-06-25  5:24 ` [Bugme-new] [Bug 8668] New: HTB Deadlock Andrew Morton
2007-06-25  9:28   ` Patrick McHardy
2007-06-25  9:30     ` Patrick McHardy
2007-06-25 11:37       ` Ranko Zivojnovic
2007-06-27 11:45     ` Jarek Poplawski
2007-06-27 11:44       ` Patrick McHardy
2007-06-27 12:10         ` Jarek Poplawski
2007-06-27 12:30           ` Jarek Poplawski
2007-06-27 14:53           ` Patrick McHardy
2007-06-27 15:09             ` [NET]: gen_estimator: fix locking and timer related bugs [Re: [Bugme-new] [Bug 8668] New: HTB Deadlock] Patrick McHardy
2007-06-27 15:25               ` Patrick McHardy
2007-06-28  6:54                 ` Jarek Poplawski
2007-06-28  9:56                   ` Jarek Poplawski
2007-06-28  9:13                 ` Jarek Poplawski [this message]
2007-06-28 12:23                   ` Patrick McHardy
2007-06-28 13:03                     ` Jarek Poplawski
2007-06-28 12:55                       ` Patrick McHardy
2007-06-28 13:27                         ` Jarek Poplawski
2007-06-29  7:02                         ` Jarek Poplawski
2007-06-29  7:56                           ` Jarek Poplawski
2007-06-28  7:52             ` [Bugme-new] [Bug 8668] New: HTB Deadlock Jarek Poplawski
2007-06-28 12:24               ` Patrick McHardy
2007-06-28 13:18                 ` Jarek Poplawski
2007-06-28 13:16                   ` Patrick McHardy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070628091339.GC1618@ff.dom.local \
    --to=jarkao2@o2.pl \
    --cc=akpm@linux-foundation.org \
    --cc=bugme-daemon@kernel-bugs.osdl.org \
    --cc=davem@davemloft.net \
    --cc=kaber@trash.net \
    --cc=netdev@vger.kernel.org \
    --cc=ranko@spidernet.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.