Re: sleeping functions called in invalid context during resume

From: Stephen Hemminger
Date: Fri Nov 17 2006 - 11:30:54 EST


On Fri, 17 Nov 2006 16:46:05 +0100
"Rafael J. Wysocki" <rjw@xxxxxxx> wrote:

> On Friday, 17 November 2006 07:52, Ingo Molnar wrote:
> >
> > * Stephen Hemminger <shemminger@xxxxxxxx> wrote:
> >
> > > > > BUG: sleeping function called from invalid context at drivers/base/power/resume.c:99
> > > > > in_atomic():1, irqs_disabled():0
> > > > >
> > > > > Call Trace:
> > > > > [<ffffffff80266117>] show_trace+0x34/0x47
> > > > > [<ffffffff8026613c>] dump_stack+0x12/0x17
> > > > > [<ffffffff803734e5>] device_resume+0x19/0x51
> > > > > [<ffffffff80292157>] enter_state+0x19b/0x1b5
> > > > > [<ffffffff802921cf>] state_store+0x5e/0x79
> > > > > [<ffffffff802cc157>] sysfs_write_file+0xc5/0xf8
> > > > > [<ffffffff80215059>] vfs_write+0xce/0x174
> > > > > [<ffffffff802159a5>] sys_write+0x45/0x6e
> > > > > [<ffffffff802593de>] system_call+0x7e/0x83
> > > > > DWARF2 unwinder stuck at system_call+0x7e/0x83
> > > > >
> > >
> > > Ingo, the later version of your lockdep patch (with the x86_64 fix),
> > > worked. There is nothing locked during these errors.
> > >
> > > The problem was the APIC error is leaving preempt-disabled.
> >
> > ah, that could be the case - do you have a fix-patch for that?
> >
> > preempt-disabled leaks are only caught via CONFIG_PREEMPT_TRACE (not via
> > lockdep), which debug feature you can find in the -rt tree:
> >
> > http://redhat.com/~mingo/realtime-preempt/
> >
> > (there's no easy standalone patch for now.)
> >
> > it will be enabled if you select CONFIG_DEBUG_PREEMPT.
> >
> > > I have no idea what causes:
> > >
> > > APIC error on CPU0: 00(00)
> > >
> > > Is it an ACPI problem?
> >
> > a 00 error code? Never seen that ... How frequently does it happen?
>
> On my x86-64 boxes the "APIC error on CPU0" message appears on every resume,
> but it doesn't seem to be related to any visible problems.
>
> It's been there forever, AFAICT.

Yes, it is there on every resume.
-
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/