From: Pavel Machek <pavel@ucw.cz>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: LKML <linux-kernel@vger.kernel.org>, Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH 3/3][Fix] swsusp: prevent swsusp from failing if there's too many pagedir pages
Date: Mon, 26 Sep 2005 16:26:08 +0200 [thread overview]
Message-ID: <20050926142608.GA32249@elf.ucw.cz> (raw)
In-Reply-To: <200509261454.09702.rjw@sisk.pl>
Hi!
> > > > Lets see...
> > > >
> > > > for i386, we have 768 pagedir entries. Each pagedir entry points to
> > > > page with 1023 pointers to pages. That means that up-to 768*1023*4096
> > > > bytes image can be saved to swap ~= 768 * 1K * 4K ~= 3 GB. That's more
> > > > than enough for i386.
> > > >
> > > > for x86-64, we can have 128 pagedir entries (could not we fit more
> > > > there? 384 entries should fit, no?).
> > >
> > > Yes. To be exact, 460.
> > >
> > > > Each pagedir entry has 511 pointers to pages (IIRC)...
> > >
> > > 512, I think.
> >
> > Okay, can we do simple solution where we put 460 there, plus a check
> > if it overflows (printk, abort suspend), for now? That should fix
> > 768MB machine...
>
> For now: a constant in power.h depending on sizeof(long) and PAGE_SIZE,
> the size of swsusp_info.pagedir[] depending on it and the overflow check
> in write_pagedir()?
Yes, that would be very nice.
> Unfortunately it's not enough for what I'm cooking (think of resuming in 35 sec.
> to a fully responsive system - well, that's on my box). A preliminary patch
> is at http://www.sisk.pl/kernel/patches/2.6.14-rc2-git3/swsusp-improve-freeing-memory.patch
Okay, I see, nice... We want to support that in future. (Actually it
is last piece of puzzle for swsusp3).
> > No, they probably will not be consecutive.
> >
> > OTOH pagedirs are stored as a link list in memory already. Maybe we
> > should be able to extend that link list for a disk, too, with minimal
> > fuss? ...we'd have to write pagedir _backwards_ for that to work,
> > probably not nice, and swap_free() would really like direct access.
>
> We write the pagedir after we have written the image, so the address
> field of each entry is not needed at that time, except for freeing the
> image memory in case of failure (with the "rework image freeing patch"
> they are not needed at all). Thus potentially we can use the address
> fields of pagedir entries to link the pages on the swap.
I plan to push "rework image freeing patch" for other reasons,
too. I'd like to run longer tests on it, but so far it looks okay.
Pavel
--
if you have sharp zaurus hardware you don't need... you know my address
next prev parent reply other threads:[~2005-09-26 18:31 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-25 18:18 [PATCH 0/3] swsusp: fix some obscure bugs Rafael J. Wysocki
2005-09-25 18:24 ` [PATCH 1/3][Fix] swsusp: remove wrong code from data_free Rafael J. Wysocki
2005-09-25 18:30 ` [PATCH 2/3][Fix] swsusp: prevent possible memory leak Rafael J. Wysocki
2005-09-25 18:44 ` [PATCH 3/3][Fix] swsusp: prevent swsusp from failing if there's too many pagedir pages Rafael J. Wysocki
2005-09-26 10:33 ` Pavel Machek
2005-09-26 11:11 ` Rafael J. Wysocki
2005-09-26 11:20 ` Pavel Machek
2005-09-26 12:54 ` Rafael J. Wysocki
2005-09-26 14:26 ` Pavel Machek [this message]
2005-09-26 19:19 ` Rafael J. Wysocki
2005-09-26 23:22 ` Pavel Machek
2005-09-26 19:29 ` [PATCH][Fix] swsusp: avoid problems if there are too many pages to save Rafael J. Wysocki
2005-09-26 23:14 ` Pavel Machek
2005-09-25 21:47 ` [PATCH 0/3] swsusp: fix some obscure bugs Pavel Machek
2005-09-25 21:59 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050926142608.GA32249@elf.ucw.cz \
--to=pavel@ucw.cz \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@sisk.pl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.