Subject: Re: [NET]: gen_estimator: fix locking and timer related bugs [Re: [Bugme-new] [Bug 8668] New: HTB Deadlock]

From: Jarek Poplawski <[email-masked]>
Date: Fri, 29 Jun 2007 09:02:41 +0200

On Thu, Jun 28, 2007 at 02:55:51PM +0200, Patrick McHardy wrote:
> Jarek Poplawski wrote:
> > On Thu, Jun 28, 2007 at 02:23:36PM +0200, Patrick McHardy wrote:
> > 
> >>Jarek Poplawski wrote:
> >>
> >>>>@@ -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) {
> >>>
...
> Its overkill in that case. The concurrent additions and removals
> can't happen.

BTW, if we talk about overkills: is there any reason to do these
for & while until the end? I can't see why anybody should add the
same *bstats & *rate_est more than once (or max twice if we let
to add, change & remove them independently). With a large number
of classes this could matter.

Regards,
Jarek P.