Re: BIOS overwritten during resume (was: Re: Asus L5D resume on battery power)

From: Rafael J. Wysocki
Date: Fri Mar 04 2005 - 20:33:37 EST


Hi,

On Friday, 4 of March 2005 21:11, Pavel Machek wrote:
> Hi!
>
> > > > > IIRC kernel code/data is marked as PageReserved(), that's why we need
> > > > > to save that :(. Not sure what to do with data e820 marked as
> > > > > reserved...
> > > >
> > > > Perhaps we need another page flag, like PG_readonly, and mark the pages
> > > > reserved by the e820 as PG_reserved | PG_readonly (the same for the areas
> > > > that are not returned by e820 at all). Would that be acceptable?
> > >
> > > This flags are little in the short supply, but being able to tell
> > > kernel code from memory hole seems like "must have", so yes, that
> > > looks ok.
> > >
> > > You could get subtle and reuse some other pageflag. I do not think
> > > PG_reserved can have PG_locked... So using for example PG_locked for
> > > this purpose should be okay.
> >
> > The following patch does this. It is only for x86-64 without
> > CONFIG_DISCONTIGMEM, but it has no effect in other cases.
>
> Actually, take a look at Nigel's patch. He simply uses PageNosave
> instead of PageLocked -- that is cleaner.

Yes. I thought about using PG_nosave in the begining, but there's a

BUG_ON(PageReserved(page) && PageNosave(page));

in swsusp.c:saveable() that I just didn't want to trigger. It seems to me,
though, that we don't need it any more, do we?

> He also found a few places where reserved page becomes un-reserved,
> and you probably need to fix those, too.

Yes, I think I'll just port the Nigel's patch to x86-64. BTW, it's striking
that we found similar solutions independently (I didn't know the Nigel's
patch before :-)).

Unfortunately, it turns out that the patch does not fix my problem with random
reboots during resume on battery power, but I really think that we need to mark
non-RAM areas with PG_nosave, at least for sanity reasons (eg to be sure that
we do not break things by dumping stuff to where we should not write to).

Greets,
Rafael


--
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
-
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/