[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080207002915.GA27124@elte.hu>
Date: Thu, 7 Feb 2008 01:29:15 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Jeff Garzik <jeff@...zik.org>
Cc: LKML <linux-kernel@...r.kernel.org>, akpm@...ux-foundation.org,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: [bug] Re: [PATCH 4/12] riscom8: fix SMP brokenness
* Jeff Garzik <jeff@...zik.org> wrote:
> After analyzing the elements that save_flags/cli/sti/restore_flags
> were protecting, convert their usages to a global spinlock (the
> easiest and most obvious next-step). There were some usages of flags
> being intentionally cached, because the code already knew the state of
> interrupts. These have been taken into account.
>
> This allows us to remove CONFIG_BROKEN_ON_SMP. Completely untested.
regression for sale :-) The above patch, after sitting in -mm for
approximately 3 months, just went upstream today via commit
d9afa43532adf8a31b93c4c7601f and promptly broke tonight's x86.git
randconfig qa run via tons of these messages:
[ 3.768431] BUG: scheduling while atomic: swapper/1/0x00000002
[ 3.769430] 1 lock held by swapper/1:
[ 3.770437] #0: (riscom_lock){--..}, at: [<80389ceb>] rc_release_drivers+0xe/0x33
[ 3.776430] Pid: 1, comm: swapper Not tainted 2.6.24 #14
[ 3.777428] [<801167d3>] __schedule_bug+0x6e/0x75
[ 3.779427] [<80756065>] schedule+0x35c/0x429
[ 3.781427] [<80103a0b>] ? restore_nocheck+0x12/0x15
[ 3.784427] [<80103a0b>] ? restore_nocheck+0x12/0x15
[ 3.786426] [<80756381>] schedule_timeout+0x69/0xa2
[ 3.788426] [<80758337>] ? _spin_unlock_irq+0x25/0x40
[ 3.790426] [<80755c0e>] wait_for_common+0x96/0x10d
[ 3.792425] [<80115edc>] ? default_wake_function+0x0/0xd
[ 3.794425] [<80755d07>] wait_for_completion+0x12/0x14
[ 3.796425] [<801282fe>] call_usermodehelper_exec+0x78/0x8c
[ 3.798424] [<8015a041>] ? slob_alloc+0xd8/0x1ad
[ 3.800424] [<80301640>] kobject_uevent_env+0x3ae/0x3c5
[ 3.802424] [<803ac361>] ? dev_uevent+0x0/0x25a
[ 3.804424] [<80301661>] kobject_uevent+0xa/0xc
[ 3.806423] [<803acc06>] device_del+0x139/0x15d
[ 3.808423] [<803acc58>] device_unregister+0x2e/0x3b
[ 3.810423] [<803acc8e>] device_destroy+0x29/0x2f
[ 3.812422] [<8035965f>] tty_unregister_device+0x18/0x1a
[ 3.814422] [<8035970b>] tty_unregister_driver+0xaa/0xf6
[ 3.816422] [<80389cf7>] rc_release_drivers+0x1a/0x33
[ 3.818421] [<80ac5e16>] riscom8_init_module+0x4ff/0x539
[ 3.820421] [<8012e76f>] ? ktime_get_ts+0x44/0x49
[ 3.822421] [<80aaf701>] kernel_init+0x9a/0x263
[ 3.824421] [<80ac5917>] ? riscom8_init_module+0x0/0x539
[ 3.827420] [<80aaf667>] ? kernel_init+0x0/0x263
[ 3.829420] [<8010455f>] kernel_thread_helper+0x7/0x18
[ 3.831419] =======================
to reproduce: enable CONFIG_RISCOM8=y on an SMP+PREEMPT kernel and boot
it. You dont need a riscom8 to trigger these messages (i dont have it
either). (i suspect 'modprobe riscom8' would trigger similar messages)
Bootlog and config attached.
Ingo
Download attachment "boot.log.bz2" of type "application/x-bzip2" (52824 bytes)
View attachment "config" of type "text/plain" (45593 bytes)
Powered by blists - more mailing lists