Re: [PATCH 3/4] x86 hibernate: Mark ACPI NVS memory region at startup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, sorry for the delay,
On Sun, 2008-10-26 at 20:29 +0800, Rafael J. Wysocki wrote:> On Sunday, 26 of October 2008, Pavel Machek wrote:> > On Wed 2008-10-22 22:53:15, Rafael J. Wysocki wrote:> > > From: Rafael J. Wysocki <rjw@xxxxxxx>> > > > > > x86 hibernate: Mark ACPI NVS memory region at startup> > > > > > Introduce new initcall for marking the ACPI NVS memory at startup, so> > > that it can be saved/restore during hibernation/resume.> > > > > > Based on a patch by Zhang Rui.> > > > > > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>> > > Cc: Zhang Rui <rui.zhang@xxxxxxxxx>> > > ---> > >  arch/x86/kernel/e820.c |   25 +++++++++++++++++++++++++> > >  1 file changed, 25 insertions(+)> > > > > > Index: linux-2.6/arch/x86/kernel/e820.c> > > ===================================================================> > > --- linux-2.6.orig/arch/x86/kernel/e820.c> > > +++ linux-2.6/arch/x86/kernel/e820.c> > > @@ -20,6 +20,7 @@> > >  #include <linux/pfn.h>> > >  #include <linux/suspend.h>> > >  #include <linux/firmware-map.h>> > > +#include <linux/efi.h>> > >  > > >  #include <asm/pgtable.h>> > >  #include <asm/page.h>> > > > Unrelated chunk?> > > > > @@ -665,6 +666,30 @@ void __init e820_mark_nosave_regions(uns> > >  }> > >  #endif> > >  > > > +#ifdef CONFIG_HIBERNATION> > > +/**> > > + * Mark ACPI NVS memory region, so that we can save/restore it during> > > + * hibernation and the subsequent resume.> > > + */> > > +static int __init e820_mark_nvs_memory(void)> > > +{> > > +	int i;> > > +> > > +	if (efi_enabled)> > > +		return 0;> > > > Aha, not unrelated... why is that? EFI does not use acpi? > > With EFI we are not supposed to do that.  Rui knows the details.  Rui?> well, about EFI nvs memory, I only get"EfiACPIMemoryNVS: The OS and loader must preserve this memory range inthe working and ACPI S1–S3 states." in the ACPI spec 3.0b.whether we should save/restore this piece of memory is not clear.I'd prefer not to touch it currently.
thanks,rui
> > > +	for (i = 0; i < e820.nr_map; i++) {> > > +		struct e820entry *ei = &e820.map[i];> > > +> > > +		if (ei->type == E820_NVS)> > > +			hibernate_nvs_register(ei->addr, ei->size);> > > > can nvs_register fail? (OOM?)> > It can, in which case it will do the cleanup.> > Thanks,> Rafael
_______________________________________________linux-pm mailing listlinux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx://lists.linux-foundation.org/mailman/listinfo/linux-pm


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux