From: Badalian Vyacheslav <slavon@bigtelecom•ru>
To: Jarek Poplawski <jarkao2@gmail•com>
Cc: netdev@vger•kernel.org
Subject: Re: deadlocks if use htb
Date: Fri, 10 Oct 2008 12:46:44 +0400 [thread overview]
Message-ID: <48EF1674.904@bigtelecom.ru> (raw)
In-Reply-To: <20081010075640.GA5204@ff.dom.local>
Jarek Poplawski пишет:
> 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).
>
>
2.6.27 - get it now!
[ 6951.841662] BUG: NMI Watchdog detected LOCKUP on CPU3, ip c01fde4c,
registers:
[ 6951.841662] Modules linked in: sch_sfq sch_htb netconsole e1000
i2c_i801 e1000e i2c_core
[ 6951.841662]
[ 6951.841662] Pid: 0, comm: swapper Not tainted (2.6.27-fw #1)
[ 6951.841662] EIP: 0060:[<c01fde4c>] EFLAGS: 00000092 CPU: 3
[ 6951.841662] EIP is at __rb_rotate_right+0xc/0x70
[ 6951.841662] EAX: f70c3c68 EBX: f70c3c68 ECX: f70c3c68 EDX: c202c134
[ 6951.841662] ESI: f70c3c68 EDI: f70c3c68 EBP: c202c134 ESP: f785fc2c
[ 6951.841662] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[ 6951.841662] Process swapper (pid: 0, ti=f785e000 task=f7832940
task.ti=f785e000)
[ 6951.841662] Stack: f70c3c68 f70c3c68 f70c3c68 c01fdf41 f70c3c68
00000000 c202c12c c202c134
[ 6951.841662] c013a91f f70c3c68 c202c12c c202212c c045b100
c013ae0a 00000000 c013d63d
[ 6951.841662] 9a011800 00000652 00000001 00000282 00000652
f70c3c68 00000000 00000000
[ 6951.841662] Call Trace:
[ 6951.841662] [<c01fdf41>] rb_insert_color+0x91/0xc0
[ 6951.841662] [<c013a91f>] enqueue_hrtimer+0x5f/0x80
[ 6951.841662] [<c013ae0a>] hrtimer_start+0xaa/0x130
[ 6951.841662] [<c013d63d>] getnstimeofday+0x3d/0xe0
[ 6951.841662] [<c02de83d>] qdisc_watchdog_schedule+0x3d/0x50
[ 6951.841662] [<f88ac343>] htb_dequeue+0x683/0x7b0 [sch_htb]
[ 6951.841662] [<c02ce692>] dev_hard_start_xmit+0x1d2/0x2c0
[ 6951.841662] [<c02dc87a>] __qdisc_run+0x13a/0x1d0
[ 6951.841662] [<c02d0ed7>] dev_queue_xmit+0x227/0x4f0
[ 6951.841662] [<c02f29ff>] ip_finish_output+0x11f/0x280
[ 6951.841662] [<c02f00e0>] ip_forward+0x290/0x310
[ 6951.841662] [<c02efe35>] ip_forward_finish+0x25/0x40
[ 6951.841662] [<c02ee9a2>] ip_rcv_finish+0x122/0x360
[ 6951.841662] [<c02c8cc6>] __alloc_skb+0x36/0x120
[ 6951.841662] [<c02c9d02>] __netdev_alloc_skb+0x22/0x50
[ 6951.841662] [<c02eee20>] ip_rcv+0x0/0x290
[ 6951.841662] [<c02ce064>] netif_receive_skb+0x274/0x4d0
[ 6951.841662] [<c0108b1a>] nommu_map_single+0x2a/0x60
[ 6951.841662] [<f883be39>] e1000_receive_skb+0x49/0x80 [e1000e]
[ 6951.841662] [<f883e84c>] e1000_clean_rx_irq+0x23c/0x300 [e1000e]
[ 6951.841662] [<f883b3ad>] e1000_clean+0x1bd/0x570 [e1000e]
[ 6951.841662] [<c02d03bc>] net_rx_action+0x13c/0x200
[ 6951.841662] [<c0129b72>] __do_softirq+0x82/0x100
[ 6951.841662] [<c0129c27>] do_softirq+0x37/0x40
[ 6951.841662] [<c0106060>] do_IRQ+0x40/0x80
[ 6951.841662] [<c01134c7>] smp_apic_timer_interrupt+0x57/0x90
[ 6951.841662] [<c010457f>] common_interrupt+0x23/0x28
[ 6951.841662] [<c0109aa2>] mwait_idle+0x32/0x40
[ 6951.841662] [<c01026c8>] cpu_idle+0x48/0xe0
[ 6951.841662] =======================
[ 6951.841662] Code: 24 08 83 e0 03 09 d0 89 03 8b 1c 24 83 c4 0c c3 89
56 08 eb e3 8d 76 00 8d bc 27 00 00 00 00 83 ec 0c 89 1c 24 89 c3 89 7c
24 08 <89> d7 89 74 24 04 8b 50 08 8b 30 8b 4a 04 83 e6 fc 85 c9 89 48
> 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 8:46 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
2008-10-10 8:46 ` Badalian Vyacheslav [this message]
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=48EF1674.904@bigtelecom.ru \
--to=slavon@bigtelecom$(echo .)ru \
--cc=jarkao2@gmail$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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