Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

in_suspend and __nosave

31 views
Skip to first unread message

Sam Ravnborg

unread,
Apr 30, 2009, 4:28:11 PM4/30/09
to Rafael J. Wysocki, Linus Torvalds, LKML, Tim Abbott
Hi Rafael & Linus.

While unifying vmlinux.lds for x86 I stumbled
over the .data.nosave section.

Searching a bit I found only a single user:

swsusp.c:int in_suspend __nosavedata = 0;

Do we really needs all this complexity for this single integer?
We have this section defined in several arch lds files.

I understand that in_suspend is special as in that we do not
want the value restored while resuming.
But is there no other way to do so today?

All I want is to kill a lot from the vmlinux.lds files.

It also occur to me that only: x86, powerpc, and sh
implement pfn_is_nosave() which I think is the only
place where we decide if we want to save a page or not.

But we define the .data.nosave section in following
architectures:
arm, m32r, mips, mn10300, parisc, s390 in addition
to the above archs that define pfn_is_nosave().
Is this something to be cleaned up?

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Rafael J. Wysocki

unread,
Apr 30, 2009, 6:10:05 PM4/30/09
to Sam Ravnborg, Linus Torvalds, LKML, Tim Abbott
On Thursday 30 April 2009, Sam Ravnborg wrote:
> Hi Rafael & Linus.

Hi,

> While unifying vmlinux.lds for x86 I stumbled
> over the .data.nosave section.
>
> Searching a bit I found only a single user:
>
> swsusp.c:int in_suspend __nosavedata = 0;
>
> Do we really needs all this complexity for this single integer?
> We have this section defined in several arch lds files.
>
> I understand that in_suspend is special as in that we do not
> want the value restored while resuming.
> But is there no other way to do so today?

On x86-64 we can probably get rid of it, a little code rework is needed for
this purpose. Unfortunately some more work is required to do the same
thing on x86-32.

> All I want is to kill a lot from the vmlinux.lds files.

Well, removing the __nosavedata is on my todo list, but not on the top of it.

> It also occur to me that only: x86, powerpc, and sh
> implement pfn_is_nosave() which I think is the only
> place where we decide if we want to save a page or not.
>
> But we define the .data.nosave section in following
> architectures:
> arm, m32r, mips, mn10300, parisc, s390 in addition
> to the above archs that define pfn_is_nosave().
> Is this something to be cleaned up?

Yes, it is.

Thanks,
Rafael

Pavel Machek

unread,
May 3, 2009, 5:57:31 PM5/3/09
to Sam Ravnborg, Rafael J. Wysocki, Linus Torvalds, LKML, Tim Abbott
Hi!

> While unifying vmlinux.lds for x86 I stumbled
> over the .data.nosave section.
>
> Searching a bit I found only a single user:
>
> swsusp.c:int in_suspend __nosavedata = 0;
>
> Do we really needs all this complexity for this single integer?
> We have this section defined in several arch lds files.

Well, original idea was that drivers may need some memory that's not
affected by hibernation/restore....

> It also occur to me that only: x86, powerpc, and sh
> implement pfn_is_nosave() which I think is the only
> place where we decide if we want to save a page or not.
>
> But we define the .data.nosave section in following
> architectures:
> arm, m32r, mips, mn10300, parisc, s390 in addition
> to the above archs that define pfn_is_nosave().
> Is this something to be cleaned up?

I guess people were just too happy with cut&paste. Ouch and someone
was working on arm hibernation, iIRC.

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

0 new messages