Re: [BUG] local_softirq_pending storm

From: Chuck Ebbert
Date: Wed May 23 2007 - 13:01:43 EST


Ingo Molnar wrote:
> * Michal Piotrowski <michal.k.k.piotrowski@xxxxxxxxx> wrote:
>
>> Bad news - I hit a bug in 2.6.22-rc2-hrt3. Bug symptoms:
>> - X hangs (keyboard, mouse, sound etc.)
>> - only Magic SysRq works
>
> please try the patch below! I think we have nailed this bug.
>
> Ingo
>
> Index: linux/kernel/sched.c
> ===================================================================
> --- linux.orig/kernel/sched.c
> +++ linux/kernel/sched.c
> @@ -4212,9 +4212,7 @@ int __sched cond_resched_softirq(void)
> BUG_ON(!in_softirq());
>
> if (need_resched() && system_state == SYSTEM_RUNNING) {
> - raw_local_irq_disable();
> - _local_bh_enable();
> - raw_local_irq_enable();
> + local_bh_enable();
> __cond_resched();
> local_bh_disable();
> return 1;

We may have a problem with that:

BUG: warning at kernel/softirq.c:138/local_bh_enable() (Not tainted)
[<c042b2ef>] local_bh_enable+0x45/0x92
[<c06036b7>] cond_resched_softirq+0x2c/0x42
[<c059d5d0>] release_sock+0x54/0xa3
[<c05c9428>] tcp_sendmsg+0x91b/0xa0c
[<c05e1bb9>] inet_sendmsg+0x3b/0x45
[<c059af34>] sock_aio_write+0xf9/0x105
[<c0476035>] do_sync_write+0xc7/0x10a
[<c0437265>] autoremove_wake_function+0x0/0x35
[<c047688e>] vfs_write+0xbc/0x154
[<c0476e8c>] sys_write+0x41/0x67
[<c0404f70>] syscall_call+0x7/0xb

That's:
WARN_ON_ONCE(irqs_disabled());


And another, tainted but probably valid:

BUG: warning at kernel/softirq.c:138/local_bh_enable() (Tainted: P )
[<c042b2ef>] local_bh_enable+0x45/0x92
[<c06036b7>] cond_resched_softirq+0x2c/0x42
[<c059d5d0>] release_sock+0x54/0xa3
[<c05c9428>] tcp_sendmsg+0x91b/0xa0c
[<c04e8b30>] copy_to_user+0x3c/0x50
[<c05a1b71>] memcpy_toiovec+0x27/0x4a
[<c059d58f>] release_sock+0x13/0xa3
[<c0604ad5>] _spin_unlock_bh+0x5/0xd
[<c05e1bb9>] inet_sendmsg+0x3b/0x45
[<c059af34>] sock_aio_write+0xf9/0x105
[<c0475f31>] do_sync_readv_writev+0xc1/0xfe
[<c0437265>] autoremove_wake_function+0x0/0x35
[<c04e88e0>] copy_from_user+0x3a/0x66
[<c0475dec>] rw_copy_check_uvector+0x5c/0xb0
[<c047667a>] do_readv_writev+0xbc/0x187
[<c059ae3b>] sock_aio_write+0x0/0x105
[<c0476782>] vfs_writev+0x3d/0x48
[<c0476bee>] sys_writev+0x41/0x95
[<c0404f70>] syscall_call+0x7/0xb


https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=240982
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/