From: Nigel Cunningham <nigel@suspend2.net>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Linux PM <linux-pm@osdl.org>, Pavel Machek <pavel@ucw.cz>
Subject: Re: [RFC][PATCH] swsusp: support creating bigger images
Date: Tue, 2 May 2006 08:56:43 +1000 [thread overview]
Message-ID: <200605020856.48151.nigel@suspend2.net> (raw)
In-Reply-To: <200605011320.50256.rjw@sisk.pl>
[-- Attachment #1.1: Type: text/plain, Size: 4576 bytes --]
Hi.
On Monday 01 May 2006 21:20, Rafael J. Wysocki wrote:
> [Dropped Nick and LKML from the Cc list.]
>
> Hi,
>
> On Monday 01 May 2006 03:49, Nigel Cunningham wrote:
> > Hi.
> >
> > Sorry for the slow response - I only have internet access at work now.
>
> No problem at all. :-)
>
> > This is going to be a pattern for the next few weeks - I'm off work next
> > week and.the week after I'll also be off apart from Monday and Tuesday
> > (those are my last two days working for Cyclades - I then get my
> > sweetheart and little one back, and we drive down to Victoria over the
> > rest of the week).
> >
> > On Sunday 30 April 2006 22:27, Rafael J. Wysocki wrote:
> > > On Wednesday 26 April 2006 02:49, Nigel Cunningham wrote:
> > > > On Wednesday 26 April 2006 08:43, Rafael J. Wysocki wrote:
> > > > > On Wednesday 26 April 2006 00:25, Pavel Machek wrote:
> > > > > > > > It does apply to all of the LRU pages. This is what I've been
> > > > > > > > doing for years now. The only corner case I've come across is
> > > > > > > > XFS. It still wants to write data even when there's nothing
> > > > > > > > to do and it's threads are frozen (IIRC - haven't looked at
> > > > > > > > it for a while). I got around that by freezing bdevs when
> > > > > > > > freezing processes.
> > > > > > >
> > > > > > > This means if we freeze bdevs, we'll be able to save all of the
> > > > > > > LRU pages, except for the pages mapped by the current task,
> > > > > > > without copying. I think we can try to do this, but we'll need
> > > > > > > a patch to freeze bdevs for this purpose. ;-)
> > > > > >
> > > > > > ...adding more dependencies to how vm/blockdevs work. I'd say
> > > > > > current code is complex enough...
> > > > >
> > > > > Well, why don't we see the patch? If it's too complex, we can just
> > > > > decide not to use it. :-)
> > > >
> > > > In Suspend2, I'm still using a different version of process.c to what
> > > > you guys have. In my version, I thaw kernelspace, then thaw bdevs,
> > > > then thaw userspace. The version below just thaws bdevs after thawing
> > > > all processes. I think that might need modification, but thought I'd
> > > > post this now so you can see how complicated or otherwise it is.
> > >
> > > IMHO it doesn't look so scary. :-)
> > >
> > :)
> > :
> > > > diff -ruN linux-2.6.17-rc2/kernel/power/process.c
> > > > bdev-freeze/kernel/power/process.c ---
> > > > linux-2.6.17-rc2/kernel/power/process.c 2006-04-19 14:27:36.000000000
> > > > +1000 +++ bdev-freeze/kernel/power/process.c 2006-04-26
> > > > 10:44:56.000000000 +1000 @@ -19,6 +19,56 @@
> > > > */
> > > > #define TIMEOUT (20 * HZ)
> > > >
> > > > +struct frozen_fs
> > > > +{
> > > > + struct list_head fsb_list;
> > > > + struct super_block *sb;
> > > > +};
> > > > +
> > > > +LIST_HEAD(frozen_fs_list);
> > > > +
> > > > +void freezer_make_fses_rw(void)
> > > > +{
> > > > + struct frozen_fs *fs, *next_fs;
> > > > +
> > > > + list_for_each_entry_safe(fs, next_fs, &frozen_fs_list, fsb_list) {
> > > > + thaw_bdev(fs->sb->s_bdev, fs->sb);
> > > > +
> > > > + list_del(&fs->fsb_list);
> > > > + kfree(fs);
> > > > + }
> > > > +}
> > > > +
> > > > +/*
> > > > + * Done after userspace is frozen, so there should be no danger of
> > > > + * fses being unmounted while we're in here.
> > > > + */
> > > > +int freezer_make_fses_ro(void)
> > > > +{
> > > > + struct frozen_fs *fs;
> > > > + struct super_block *sb;
> > > > +
> > > > + /* Generate the list */
> > > > + list_for_each_entry(sb, &super_blocks, s_list) {
> > > > + if (!sb->s_root || !sb->s_bdev ||
> > > > + (sb->s_frozen == SB_FREEZE_TRANS) ||
> > > > + (sb->s_flags & MS_RDONLY))
> > > > + continue;
> > > > +
> > > > + fs = kmalloc(sizeof(struct frozen_fs), GFP_ATOMIC);
> > >
> > > Shouldn't we check for kmalloc() failures here?
> >
> > Good point. Just because I've never seen it fail, doesn't mean it can't
> > :)
> >
> > Before I roll a new version, what did you think splitting the thawing and
> > thawing bdevs in the middle? I think it's the right thing (TM) to do :>
>
> Do you mean to thaw kernel threads first, thaw bdevs next and thaw user
> space processes at the end? I think it should be done in that order if
> the bdevs are frozen.
Ok. Will seek to find time to prepare a patch to do that.
Regards,
Nigel
--
See our web page for Howtos, FAQs, the Wiki and mailing list info.
http://www.suspend2.net IRC: #suspend2 on Freenode
[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
next prev parent reply other threads:[~2006-05-01 22:56 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-24 21:55 [RFC][PATCH] swsusp: support creating bigger images Rafael J. Wysocki
2006-04-24 22:16 ` Pavel Machek
2006-04-25 8:26 ` Rafael J. Wysocki
2006-04-25 8:26 ` Rafael J. Wysocki
2006-04-25 10:04 ` Pavel Machek
2006-04-25 10:04 ` Pavel Machek
2006-04-25 10:31 ` Rafael J. Wysocki
2006-04-25 10:31 ` Rafael J. Wysocki
2006-04-27 15:27 ` Rafael J. Wysocki
2006-04-27 15:27 ` Rafael J. Wysocki
2006-04-27 20:55 ` Pavel Machek
2006-04-28 9:19 ` Rafael J. Wysocki
2006-04-28 9:19 ` Rafael J. Wysocki
2006-04-28 9:23 ` Pavel Machek
2006-04-28 9:23 ` Pavel Machek
2006-04-25 10:28 ` Nick Piggin
2006-04-25 15:39 ` Rafael J. Wysocki
2006-04-25 20:32 ` Pavel Machek
2006-04-25 21:12 ` Rafael J. Wysocki
2006-04-25 21:12 ` Rafael J. Wysocki
2006-04-25 21:18 ` Nigel Cunningham
2006-04-25 21:18 ` Nigel Cunningham
2006-04-25 22:21 ` Rafael J. Wysocki
2006-04-25 22:21 ` Rafael J. Wysocki
2006-04-25 22:24 ` Nigel Cunningham
2006-04-25 22:24 ` Nigel Cunningham
2006-04-25 22:38 ` Rafael J. Wysocki
2006-04-25 22:38 ` Rafael J. Wysocki
2006-04-25 22:25 ` Pavel Machek
2006-04-25 22:25 ` Pavel Machek
2006-04-25 22:30 ` Nigel Cunningham
2006-04-25 22:30 ` Nigel Cunningham
2006-04-25 22:36 ` Pavel Machek
2006-04-25 22:36 ` Pavel Machek
2006-04-25 22:43 ` Rafael J. Wysocki
2006-04-25 22:43 ` Rafael J. Wysocki
2006-04-26 0:49 ` Nigel Cunningham
2006-04-30 12:27 ` Rafael J. Wysocki
2006-04-30 12:27 ` Rafael J. Wysocki
2006-05-01 1:49 ` Nigel Cunningham
2006-05-01 1:49 ` Nigel Cunningham
2006-05-01 11:20 ` Rafael J. Wysocki
2006-05-01 22:56 ` Nigel Cunningham [this message]
2006-04-26 2:24 ` Nick Piggin
2006-04-26 2:24 ` Nick Piggin
2006-04-26 3:41 ` Nigel Cunningham
2006-04-26 16:22 ` Nick Piggin
2006-04-26 21:16 ` Rafael J. Wysocki
2006-04-26 21:16 ` Rafael J. Wysocki
2006-04-26 8:10 ` Pavel Machek
2006-04-26 8:10 ` Pavel Machek
2006-04-27 19:53 ` [RFC][PATCH] swsusp: support creating bigger images (rev. 2) Rafael J. Wysocki
2006-04-27 19:53 ` Rafael J. Wysocki
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=200605020856.48151.nigel@suspend2.net \
--to=nigel@suspend2.net \
--cc=linux-pm@osdl.org \
--cc=pavel@ucw.cz \
--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.