On Sun, Sep 14, 2008 at 3:18 PM, Ingo Molnar <mingo@xxxxxxx> wrote: > > * Raz <raziebe@xxxxxxxxx> wrote: > >> From: Raz Ben Yehuda <raziebe@xxxxxxxxx> >> >> When booting a kernel with PREEMPT_ENABLE and SLAB_DEBUG, unplugging a >> processor results in BUG in slab. > > could you please post that BUG? (and which version of the kernel you > have tried, and exactly what you did to trigger this bug) Latest working kernel version: unknown Earliest failing kernel version: 2.6.26.5 <-- this is the kernel I tested. Distribution:centos 5.0 64bit Hardware Environment: Lenovo T61 Dual core. Software Environment: Problem Description: 1. configure kernel as describe in Documentation/submitCheckList section 12. 2. boot this kernel 3. run . echo 0 > /sys/devices/system/node/node0/cpu1/online result: SMP alternatives: switching to UP code BUG: sleeping function called from invalid context at mm/slab.c:3052 in_atomic():1, irqs_disabled():0 INFO: lockdep is turned off. Pid: 2463, comm: bash Not tainted 2.6.26.5 #28 Call Trace: [<ffffffff80251c61>] ? __debug_show_held_locks+0x1b/0x24 [<ffffffff8022aae6>] __might_sleep+0x108/0x10a [<ffffffff802962fd>] kmem_cache_alloc_node+0x39/0x1a3 [<ffffffff80289432>] ? __get_vm_area_node+0xa4/0x1d7 [<ffffffff80289432>] __get_vm_area_node+0xa4/0x1d7 [<ffffffff8020a3d7>] ? disable_TSC+0x17/0x53 [<ffffffff802895c5>] get_vm_area_caller+0x2f/0x31 [<ffffffff804b2653>] ? text_poke+0x11d/0x19a [<ffffffff80289d40>] vmap+0x31/0x63 [<ffffffff804b7b62>] ? _etext+0x0/0xe [<ffffffff804b2653>] text_poke+0x11d/0x19a [<ffffffff804b7b62>] ? _etext+0x0/0xe [<ffffffff802118d4>] alternatives_smp_unlock+0x4f/0x63 [<ffffffff80211b77>] alternatives_smp_switch+0x161/0x19e [<ffffffff8021b80c>] __cpu_die+0x5c/0x86 [<ffffffff8049d047>] _cpu_down+0x1b5/0x28d [<ffffffff8049d145>] cpu_down+0x26/0x36 [<ffffffff8049e306>] store_online+0x32/0x75 [<ffffffff8037402e>] sysdev_store+0x24/0x26 [<ffffffff802e3134>] sysfs_write_file+0xe5/0x121 [<ffffffff8029dddc>] vfs_write+0xae/0x124 [<ffffffff8029e320>] sys_write+0x47/0x70 [<ffffffff8020bffb>] system_call_after_swapgs+0x7b/0x80 Steps to reproduce: > note that the conversion to a sleeping lock: > >> -static DEFINE_SPINLOCK(smp_alt); >> +static __DECLARE_SEMAPHORE_GENERIC(smp_alt_lock, 1); > > is already done correctly in the latest upstream kernel, see this > commit: > > # 2f1dafe: x86: fix SMP alternatives: use mutex instead of spinlock > > the better solution is to use a mutex, not a semaphore. This fix is part > of the v2.6.26 kernel. > > Ingo > yes. I understand. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html