From: Patrick McHardy <kaber@trash.net>
To: Ingo Molnar <mingo@elte.hu>
Cc: Anant Nitya <kernel@prachanda.info>,
linux-kernel@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
"David S. Miller" <davem@davemloft.net>,
Linux Netdev List <netdev@vger.kernel.org>,
Herbert Xu <herbert@gondor.apana.org.au>
Subject: Re: bad networking related lag in v2.6.22-rc2
Date: Wed, 23 May 2007 12:56:04 +0200 [thread overview]
Message-ID: <46541DC4.4090501@trash.net> (raw)
In-Reply-To: <20070523063052.GB26814@elte.hu>
[-- Attachment #1: Type: text/plain, Size: 1275 bytes --]
Ingo Molnar wrote:
> if you feel inclined to try the git-bisection then by all means please
> do it (it will certainly be helpful and educative), but it's optional: i
> dont think you should 'need' to go through extra debugging chores, my
> analysis based on the excellent trace you provided still holds and
> whoever modified htb_dequeue()'s logic recently ought to be able to
> figure that out (or send you a debug patch to further narrow the problem
> down).
>
> The trace shows a _clearly_ anomalous loop: for example there's 56396
> (!) calls to rb_first() in htb_dequeue() [without the kernel ever
> exiting that function]:
>
> earth4:~/s> grep rb_first trace-to-ingo.txt | wc -l
> 56396
How is this trace to be understood? Is it simply a call trace in
execution-order? If thats the case than we are exiting htb_dequeue,
each call to qdisc_watchdog_schedule happens at the very end of
that function, which would imply a bug in __qdisc_run.
Looking at the recent changes to __qdisc_run, this indeed seems
to be the case, when the qdisc is throttled and has packets queued
we return a value != 0, causing __qdisc_run to loop until all
packets have been sent, which may be a long time.
Anant, can you please verify by testing the attached patch? Thanks.
[-- Attachment #2: x --]
[-- Type: text/plain, Size: 318 bytes --]
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index f28bb2d..f536060 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -174,7 +174,7 @@ requeue:
out:
BUG_ON((int) q->q.qlen < 0);
- return q->q.qlen;
+ return skb ? q->q.qlen : 0;
}
void __qdisc_run(struct net_device *dev)
next prev parent reply other threads:[~2007-05-23 10:59 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-17 17:45 [patch] CFS scheduler, -v13 Ingo Molnar
2007-05-17 21:47 ` Anant Nitya
2007-05-18 10:26 ` Ingo Molnar
2007-05-18 16:13 ` Anant Nitya
2007-05-19 21:16 ` Anant Nitya
2007-05-20 6:38 ` Ingo Molnar
2007-05-21 7:58 ` bad networking related lag in v2.6.22-rc2 Ingo Molnar
2007-05-21 8:03 ` Ingo Molnar
2007-05-21 8:05 ` Ingo Molnar
2007-05-21 8:12 ` Ingo Molnar
2007-05-21 8:29 ` David Miller
2007-05-21 10:09 ` Ingo Molnar
2007-05-21 10:14 ` Anant Nitya
2007-05-21 10:20 ` Ingo Molnar
2007-05-22 6:20 ` Anant Nitya
2007-05-21 19:40 ` Anant Nitya
2007-05-21 20:46 ` Ingo Molnar
2007-05-21 21:02 ` Patrick McHardy
2007-05-21 21:30 ` Patrick McHardy
2007-05-22 6:17 ` Anant Nitya
2007-05-22 6:22 ` Ingo Molnar
2007-05-23 5:40 ` Anant Nitya
2007-05-23 6:30 ` Ingo Molnar
2007-05-23 10:56 ` Patrick McHardy [this message]
2007-05-23 11:05 ` Ingo Molnar
2007-05-23 11:25 ` Herbert Xu
2007-05-23 11:33 ` Patrick McHardy
2007-05-23 15:00 ` Linus Torvalds
2007-05-23 17:16 ` Patrick McHardy
2007-05-23 11:40 ` Ingo Molnar
2007-05-23 21:30 ` David Miller
2007-05-24 5:41 ` Patrick McHardy
2007-05-24 6:40 ` David Miller
2007-05-24 7:12 ` Anant Nitya
2007-05-22 6:23 ` Ingo Molnar
2007-05-22 6:24 ` Ingo Molnar
2007-05-22 9:17 ` Patrick McHardy
2007-05-22 12:47 ` Anant Nitya
2007-05-21 8:25 ` David Miller
2007-05-21 8:28 ` Ingo Molnar
2007-05-21 8:30 ` David Miller
2007-05-21 15:57 ` [patch] CFS scheduler, -v13 Linus Torvalds
2007-05-22 22:06 ` Bill Davidsen
2007-05-23 5:45 ` Anant Nitya
2007-05-18 15:20 ` Michael Lothian
2007-05-18 15:56 ` Ingo Molnar
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=46541DC4.4090501@trash.net \
--to=kaber@trash.net \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=kernel@prachanda.info \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=netdev@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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.