[linux-pm] 2.6.19: ACPI reports AC not present after resume from STD

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

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On ??????????? 25 ??????? 2007, Rafael J. Wysocki wrote:
> On Sunday, 25 February 2007 00:26, Andrey Borzenkov wrote:
> > On ??????? 24 ??????? 2007, Rafael J. Wysocki wrote:
> > > Hi,
> > >
> > > On Saturday, 24 February 2007 10:55, Andrey Borzenkov wrote:
> > > > On ??????? 13 ??????? 2007, Andrey Borzenkov wrote:
> > > > > On ??????? 07 ??????? 2006, Lebedev, Vladimir P wrote:
> > > > > > Please register new bug, attach acpidump and dmesg.
> > > > >
> > > > > http://bugzilla.kernel.org/show_bug.cgi?id=7995
> > > > >
> > > > > regards
> > > >
> > > > Well, this starts looking like ACPI is not at fault.
> > > >
> > > > When reporting AC state ACPI just reads contents of system memory (I
> > > > presume it gets updated by BIOS/ACPI when AC state changes). It looks
> > > > like this memory area is restored during resume from STD. I updated
> > > > mentioned bug report with more detailed description. Now if someone
> > > > could suggest a way to catch if specific physical address gets
> > > > saved/restored this would finally explain it.
> > >
> > > First, if you want the reserved memory areas to be left alone by
> > > swsusp, you need to mark them as 'nosave'.  On x86_64 this is done by
> > > the function e820_mark_nosave_range() in arch/x86_64/kernel/e820.c that
> > > can be ported to i386 with no problems.  However, we haven't found that
> > > very useful, so far, since no one has ever reported any problems with
> > > the current approach, which is to save and restore them.
> >
> > Well, the following proof of concept patch fixes this issue for me.
> > Please notice that original version of e820_mark_nosave_range() could
> > fail to exclude some areas due to alignment issues (exactly what happened
> > to me on first try) so it still can explain your problem too.
>
> Great job, thanks for the patch!  It looks good, so I'm going to forward it
> for merging.
>

Please no; I'm currently testing slightly more polished version; I will send 
it later.

Could anybody explain (or give pointer to) what happens which region that is 
not page-aligned? In particular, the very first one:

 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)

Will the kernel allocate partial page (how?) or will the kernel ignore last 
(first) incomplete page? In the former case how those incomplete pages can be 
detected?

- -andrey
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFF4WbUR6LMutpd94wRAoOVAKDNZxeHKRJ+8IVVpR2zZZF5dTYEDACg0hKi
7dffkAFBZnBSQ/3VkNP6tFU=
=nezM
-----END PGP SIGNATURE-----


[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