From: Jarek Poplawski <jarkao2@gmail.com>
To: Badalian Vyacheslav <slavon@bigtelecom.ru>
Cc: netdev@vger.kernel.org
Subject: Re: deadlocks if use htb
Date: Fri, 10 Oct 2008 07:56:40 +0000 [thread overview]
Message-ID: <20081010075640.GA5204@ff.dom.local> (raw)
In-Reply-To: <48EEEBC1.2090008@bigtelecom.ru>
On 10-10-2008 07:44, Badalian Vyacheslav wrote:
> Hello all!
Hello Slavon,
>
> Please look to if you have time:
> http://bugzilla.kernel.org/show_bug.cgi?id=11718
>
> We have deadlocks at few PC one times in week.
> I can test any patches to detect and fix problem.
> Now i test 2.6.27-rc kernel at one PC.
A similar bug was reported by Denys Fedoryshchenko but it wasn't fully
diagnosed. Anyway it looks like hardware dependent. The patch below
can sometimes help. 2.6.27 may have this fixed too (some other way).
Jarek P.
(some offsets are OK when patching 2.6.26)
---
net/sched/sch_htb.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 30c999c..ff9e965 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -162,6 +162,7 @@ struct htb_sched {
int rate2quantum; /* quant = rate / rate2quantum */
psched_time_t now; /* cached dequeue time */
+ psched_time_t next_watchdog;
struct qdisc_watchdog watchdog;
/* non shaped skbs; let them go directly thru */
@@ -920,7 +921,11 @@ static struct sk_buff *htb_dequeue(struct Qdisc *sch)
}
}
sch->qstats.overlimits++;
- qdisc_watchdog_schedule(&q->watchdog, next_event);
+ if (q->next_watchdog < q->now || next_event <=
+ q->next_watchdog - PSCHED_TICKS_PER_SEC / HZ) {
+ qdisc_watchdog_schedule(&q->watchdog, next_event);
+ q->next_watchdog = next_event;
+ }
fin:
return skb;
}
@@ -973,6 +978,7 @@ static void htb_reset(struct Qdisc *sch)
}
}
qdisc_watchdog_cancel(&q->watchdog);
+ q->next_watchdog = 0;
__skb_queue_purge(&q->direct_queue);
sch->q.qlen = 0;
memset(q->row, 0, sizeof(q->row));
next prev parent reply other threads:[~2008-10-10 7:56 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-10 5:44 deadlocks if use htb Badalian Vyacheslav
2008-10-10 7:56 ` Jarek Poplawski [this message]
2008-10-10 8:46 ` Badalian Vyacheslav
2008-10-10 8:52 ` Badalian Vyacheslav
2008-10-10 9:04 ` Jarek Poplawski
2008-10-10 9:51 ` Jarek Poplawski
2008-10-16 8:28 ` Badalian Vyacheslav
2008-10-16 8:40 ` Jarek Poplawski
2008-10-22 6:06 ` Badalian Vyacheslav
2008-10-22 7:02 ` Jarek Poplawski
2008-12-10 15:14 ` Badalian Vyacheslav
2008-12-11 8:46 ` Jarek Poplawski
2008-12-15 11:13 ` Jarek Poplawski
2008-12-16 7:37 ` Badalian Vyacheslav
2008-12-18 6:43 ` Badalian Vyacheslav
2008-12-18 8:17 ` Jarek Poplawski
2008-12-18 11:23 ` Badalian Vyacheslav
2008-12-18 11:37 ` Jarek Poplawski
2009-01-14 2:43 ` Chris Caputo
2009-01-14 6:39 ` Jarek Poplawski
2009-01-14 12:17 ` Denys Fedoryschenko
2009-01-14 12:36 ` Jarek Poplawski
2009-01-14 12:41 ` Denys Fedoryschenko
2009-01-14 12:50 ` Peter Zijlstra
2009-01-14 13:04 ` Jarek Poplawski
2009-01-14 13:05 ` Denys Fedoryschenko
2009-01-14 13:12 ` Jarek Poplawski
2009-01-14 13:15 ` Peter Zijlstra
2009-01-14 13:19 ` Denys Fedoryschenko
2009-01-14 13:26 ` Jarek Poplawski
2009-01-14 13:32 ` Peter Zijlstra
2009-01-14 13:57 ` Jarek Poplawski
2009-01-14 14:13 ` Jarek Poplawski
2009-01-14 14:28 ` Peter Zijlstra
2009-01-14 14:39 ` Jarek Poplawski
2009-01-15 9:01 ` Jarek Poplawski
2009-01-15 10:46 ` Peter Zijlstra
2009-01-15 10:54 ` Jarek Poplawski
2009-01-14 18:02 ` Chris Caputo
2009-01-15 6:53 ` Jarek Poplawski
2009-01-15 7:12 ` Badalian Vyacheslav
2009-01-15 8:09 ` Jarek Poplawski
2009-01-15 9:01 ` Denys Fedoryschenko
2009-01-15 9:06 ` Jarek Poplawski
2009-01-15 9:40 ` Badalian Vyacheslav
2009-01-15 9:54 ` Jarek Poplawski
2009-01-15 9:57 ` Denys Fedoryschenko
2009-01-15 10:06 ` Jarek Poplawski
2009-01-15 10:10 ` Jarek Poplawski
2009-01-15 10:40 ` Denys Fedoryschenko
2009-01-15 7:26 ` Chris Caputo
2009-01-15 7:54 ` Jarek Poplawski
2009-01-15 9:45 ` Jarek Poplawski
2009-01-15 12:00 ` Chris Caputo
2009-01-15 12:18 ` Jarek Poplawski
2009-01-15 13:53 ` Chris Caputo
2009-01-16 6:51 ` Badalian Vyacheslav
2009-01-19 5:46 ` David Miller
2009-01-19 6:57 ` [PATCH] " Jarek Poplawski
2009-01-19 7:42 ` Badalian Vyacheslav
2009-01-19 7:57 ` Jarek Poplawski
2009-01-20 1:29 ` David Miller
2008-10-10 12:32 ` Patrick McHardy
2008-10-10 12:34 ` Patrick McHardy
2008-10-10 12:54 ` Badalian Vyacheslav
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=20081010075640.GA5204@ff.dom.local \
--to=jarkao2@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=slavon@bigtelecom.ru \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).