[linux-pm] [PATCH -mm] kexec jump -v9

Rafael J. Wysocki rjw at sisk.pl
Thu Mar 20 19:40:32 EDT 2008


On Friday, 21 of March 2008, Pavel Machek wrote:
> On Thu 2008-03-20 19:01:56, Alan Stern wrote:
> > On Thu, 20 Mar 2008, Rafael J. Wysocki wrote:
> > 
> > > > > >> Well, I've been saying that for I-don't-remember-how-long: on my box, if you
> > > > > >> use S5 instead of entering S4, the fan doesn't work correctly after the
> > > > > >> resume.  Plain and simple.
> > > > > >> 
> > > > > >> Perhaps there's a problem with our ACPI drivers that causes this to happen,
> > > > > >> but I have no idea what that can be at the moment.
> > > > > >
> > > > > > IMO it would be worthwhile to track this down.  It's a clear indication 
> > > > > > that something is wrong somewhere.
> > > > > >
> > > > > > Could it be connected with the way the boot kernel hands control over
> > > > > > to the image kernel?  Presumably ACPI isn't prepared to deal with that
> > > > > > sort of thing during a boot from S5.  It would have to be fooled into
> > > > > > thinking the two kernels were one and the same.
> > > > > 
> > > > > It should be easy to test if it is a hand over problem, by turning off
> > > > > the laptop by placing it in S5 (shutdown -h now) and then booting same
> > > > > kernel again.
> > > > 
> > > > Feel free to help with testing.
> > > > 
> > > > I believe ACPI is simply getting confused by us overwriting memory
> > > > with that from old image. I don't see how you can emulate it with
> > > > shutdown.
> > > 
> > > Well, in fact ACPI has something called the NVS memory, which we're supposed
> > > to restore during the resume and which we're not doing.  The problem may be
> > > related to this.
> > 
> > No, it can't be.  ACPI won't expect the NVS memory to be restored 
> > following an S5-shutdown.  In fact, as far as ACPI is concerned, 
> > resuming from an S5-type hibernation should not be considered a resume 
> > at all but just an ordinary reboot.

I agree here.

> > All ACPI-related memory areas in the boot kernel should be passed directly
> > through to the image kernel.

However, the image kernel is supposed to restore the NVS area (from the
image) before executing _WAK.

> How can we pass interpretter state? I do not think we do this kind of
> passing.

The interpreter state is passed withing the image.  The platform state is not.

> If it was enough to pass some static area, we could just mark it
> nosave...
> 
> Len: Is ACPI AML permitted to allocate memory (like in ACPI_ALLOC or
> something)? Could we easily identify BIOS data so we could mark them
> nosave?

This wouldn't work even if we could (at least on x86-64).

In fact I'm going to remove the 'nosave' section in the future (another
thing on the todo list).

Thanks,
Rafael



More information about the kexec mailing list