Re: [linux-pm] x86: Expected system state when resumed

From: Rafael J. Wysocki
Date: Wed Jul 22 2009 - 10:30:34 EST


On Wednesday 22 July 2009, Deepak Saxena wrote:
> On Jul 21 2009, at 22:48, Rafael J. Wysocki was caught saying:
> > On Tuesday 21 July 2009, Deepak Saxena wrote:
> > >
> > > I am working on getting suspend/resume working on an x86 system
> > > (OLPC XO-1.5) where we are implementing ACPI based suspend/resume
> > > using Open Firmware and what I am seeing right now is that on
> > > resume, we're not receiving interrupts so the system locks
> > > up in the suspend path when msleep() is called from the EHCI
> > > HCD resume code. lapic_resume() is being called so the APIC
> > > is being restored. I'm looking for information on what else
> > > Linux's expectation from the firmware when control is handed back
> > > before I start dumping every system register pre and post resume.
> >
> > If that's 2.6.30 or later and your timer interrupt is MSI, for example, please
> > check if the timer interrupt is marked as IRQF_TIMER. If it's not,
> > suspend_device_irqs() will mark it as disabled and it won't work during
> > early resume.
>
> Thanks. I am using 2.6.30.1 and the standard x86 HPET driver which has
> IRQF_TIMER set so this is not the issue. I've determined that if I boot
> with "noapic", I can suspend/resume, but the system runs very slow as the
> PATA controller is now polled instead of irq driven.

So it looks like with IO-APIC enabled the timer interrupts don't reach the CPU
during resume, which indicates that the post-resume status of the IO-APIC is
somewhat not as expected.

Best,
Rafael
--
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/