mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Nigel Cunningham <ncunningham@cyclades.com>
To: Pavel Machek <pavel@suse.cz>
Cc: Andrew Morton <akpm@osdl.org>,
	mjg59@scrf.ucam.org, hare@suse.de,
	"Barry K. Nathan" <barryn@pobox.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: swsusp: allow resume from initramfs
Date: Sat, 05 Mar 2005 09:31:14 +1100	[thread overview]
Message-ID: <1109975474.3772.305.camel@desktop.cunningham.myip.net.au> (raw)
In-Reply-To: <20050304220709.GE2385@elf.ucw.cz>

Hi.

On Sat, 2005-03-05 at 09:07, Pavel Machek wrote:
> Hi!
> 
> > > > You guys are reinventing the wheel a lot at the moment and I'm in the
> > > > middle of doing it for x86_64 lowlevel code :> Can we see if we can work
> > > > a little more closely - perhaps we can get some shared code going that
> > > > will allow us to handle these issues without stepping on each others'
> > > > feet? In particular, shared code for
> > > > 
> > > > - initramfs and initrd support
> > > 
> > > Its actually done, and it was few strategically placed lines of code
> > > (like 20 lines). I do not think it can be meaningfully shared.
> > 
> > Mmm. But if we're both putting hooks in the same places...
> 
> There are very little hooks... But we may want to make sure we have
> same userland interface. swsusp uses "echo 3:5 > /sys/power/resume" to
> trigger resume from device major 3 minor 5.
> 
> > > > - lowlevel suspend & resume
> > > 
> > > This makes very good sense to share. We have i386, x86-64 and ppc
> > > versions. They simply walk list of pbe's; that should be simple enough
> > > to be usable for suspend2, too....
> > 
> > The CPU save and restore, yes. But I use a different format for
> > recording the image metadata (I use bitmaps to record the locations of
> > pages). Perhaps I should hasten to mention the bitmaps are discontiguous
> > - single pages connected by a kmalloc'd list. The copyback itself will
> > need to stay distinct.
> 
> Hmm, bitmaps? Okay, then low-level code needs to stay separate. (And
> thats bad, I wanted that one to be shared most).

Mmm. As you might remember, I used extents from 1.0 to save space. The
feedback from the last submission to LKML about getting rid of the
page_alloc.c hooks made me re-examine the use of the memory pool, which
made me re-examine the format in which the data was stored. Switching to
bitmaps meant that after saving the LRU pages, I can recalculate what
remains to be saved without ever changing the result in the process.
(Using extents, there was a small chance that the recalculated metadata
would require an extra extent on an extra page, which means you have to
recalculate everything again :<. With discontiguous bitmaps, I get
efficient storage, no need for > order zero allocations and no feedback
whatsoever when recalculating image metadata. Besides removing the
memory pool code, I've already removed some more, and am about to
simplify the code for the remaining extents (for storage metadata). I
hope to also be able to further simplify the image preparation code too.

All that to say "Bitmaps were a definite win!". Perhaps I can sell you
on the advantages of using them :>

By the way, did you see the effect of the memory eating patch? I didn't
think about it until someone emailed me, but the improvement was 50x
speed in the best case!

Nigel
-- 
Nigel Cunningham
Software Engineer, Canberra, Australia
http://www.cyclades.com
Bus: +61 (2) 6291 9554; Hme: +61 (2) 6292 8028;  Mob: +61 (417) 100 574

Maintainer of Suspend2 Kernel Patches http://softwaresuspend.berlios.de



  reply	other threads:[~2005-03-04 23:52 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-04 10:16 Pavel Machek
2005-03-04 11:04 ` Andrew Morton
2005-03-04 11:15   ` Pavel Machek
2005-03-04 17:17   ` Stefan Seyfried
2005-03-04 17:50   ` Barry K. Nathan
2005-03-04 21:22     ` Nigel Cunningham
2005-03-04 21:43       ` Pavel Machek
2005-03-04 21:50         ` Nigel Cunningham
2005-03-04 22:07           ` Pavel Machek
2005-03-04 22:31             ` Nigel Cunningham [this message]
2005-03-04 22:55               ` Pavel Machek
2005-03-05  1:07                 ` Nigel Cunningham
2005-03-05 21:58                   ` swsusp memory freeing [was Re: swsusp: allow resume from initramfs] Pavel Machek
2005-03-06 22:28   ` swsusp: allow resume from initramfs Andreas Jellinghaus
2005-03-06 22:27 ` Andreas Jellinghaus
2005-03-07 11:40   ` Pavel Machek
     [not found] <fa.e8vvlml.hjolb5@ifi.uio.no>
     [not found] ` <fa.h2h05q4.mmkqpm@ifi.uio.no>
2005-03-04 13:36   ` Bodo Eggert

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=1109975474.3772.305.camel@desktop.cunningham.myip.net.au \
    --to=ncunningham@cyclades.com \
    --cc=akpm@osdl.org \
    --cc=barryn@pobox.com \
    --cc=hare@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@scrf.ucam.org \
    --cc=pavel@suse.cz \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®