Re: [2.6.25-rc5-mm1] BUG: spinlock bad magic early during boot

Peter Zijlstra
2008-03-17T12:23:56Z

On Sun, 2008-03-16 at 13:11 -0700, Dave Hansen wrote:

> > ACPI: Core revision 20070126
> > +INFO: trying to register non-static key.
> > +the code is fine but needs lockdep annotation.
> > +turning off the locking correctness validator.
> > +Pid: 0, comm: swapper Not tainted 2.6.25-rc5-mm1-testing #3
> > + [<c014321e>] __lock_acquire+0x144/0xb6e
> > + [<c010b1a2>] ? native_sched_clock+0xe0/0xff
> > + [<c017fc57>] ? kmem_cache_alloc+0x89/0xc9
> > + [<c0142ce0>] ? trace_hardirqs_on+0xe8/0x11d
> > + [<c014404f>] lock_acquire+0x6a/0x90
> > + [<c013b460>] ? down_trylock+0xc/0x27
> > + [<c03016cb>] _spin_lock_irqsave+0x42/0x72
> > + [<c013b460>] ? down_trylock+0xc/0x27
> > + [<c013b460>] down_trylock+0xc/0x27
> > + [<c021fa65>] acpi_os_wait_semaphore+0x67/0x13d
> > + [<c023a39e>] acpi_ut_acquire_mutex+0x65/0xcf
> > + [<c0230261>] acpi_ns_root_initialize+0x1a/0x289
> > + [<c043ad54>] acpi_initialize_subsystem+0x47/0x6a
> > + [<c043afd4>] acpi_early_init+0x57/0xf8
> > + [<c04248ff>] start_kernel+0x34d/0x35a
> > + [<c0424019>] i386_start_kernel+0x8/0xa
> > + =======================
> > ACPI: Checking initramfs for custom DSDT
> > Parsing all Control Methods:
> > Table [DSDT](id 0001) - 637 Objects with 63 Devices 160 Methods 41
> > Regions
>
> Hi Tim,
>
> Again, thanks for the excellent bug reporting.
>
> This is actually a different problem (and not my code again, thank
> goodness). I think a few of these got fixed in current -mm. According
> to Peter Z, these mean:
>
> > It means the lock_class_key ended up in non-static storage.
> >
> > In practise it often means you initialized a on-stack structure
> > incorrectly. DECLARE_WAIT_QUEUE_HEAD() vs
> > DECLARE_WAIT_QUEUE_HEAD_ONSTACK() for example.
>
> So, this looks like an on-stack ACPI structure that got initialized
> wrongly. At least we already have those dudes on the cc. :)

Actually looks like the semaphore thing again, its a spinlock inside of
down_tylock().

> But, this might also get fixed by reverting the patch as Linus just did.
> It might just be best to wait for another -mm release and see how it
> settles out.

Looks like another of the semaphore thingies.. Does this go away once
you apply the semaphore lockdep fixup from here: