public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@suse.cz>
To: Nigel Cunningham <ncunningham@cyclades.com>
Cc: Greg KH <greg@kroah.com>,
	Dumitru Ciobarcianu <Dumitru.Ciobarcianu@iNES.RO>,
	Linux-pm mailing list <linux-pm@lists.osdl.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [linux-pm] [RFC] userland swsusp
Date: Wed, 16 Nov 2005 23:47:28 +0100	[thread overview]
Message-ID: <20051116224728.GI12505@elf.ucw.cz> (raw)
In-Reply-To: <1132175248.25230.104.camel@localhost>

Hi!

> > > I can agree with putting splash screens and userspace stuff in
> > > userspace. Suspend2 has had that too, since March. But the guts of
> > > the
> > 
> > Well, I'd say that having to resort to netlink is ... not quite
> > nice. You get all the complexity of having userspace running during
> > suspend, and get very little benefit.
> 
> Mmm, but less complexity than with trying to do the whole suspend from
> userspace. (I don't need to export pageflags, bio routines etc or work
> around it by using /dev/kmem).

Well, userland swsusp has pretty low impact on kernel code -- it adds
something like 150 lines:

 drivers/char/mem.c      |   42 +
 include/linux/suspend.h |   23
 kernel/power/console.c  |    1
 kernel/power/disk.c     |   19
 kernel/power/swsusp.c   |   78 +
 usr/swsusp-init         |    9
 8 files changed, 2696 insertions(+), 4 deletions(-)

i don't think you can do much better than that...

> > ...at expense of complexity, and hooks all over the kernel. Yes, if
> > you modify kernel a bit, nothing will use the page cache.
> 
> Could you back your "hooks all over the kernel" statement up? I do have
> some BUG_ON()s aimed at double checking that nothing bad happens, but
> they never get hit and obviously aren't required to stop processes using
> the page cache. All that's really required is to freeze processes.

Are you willing to merge the code without BUG_ONs?

> > Anyway, I believe we have solution for that one. See Rafael's recent
> > patches -- "only free as much memory as neccessary" should do the
> > trick, without excessive complexity.
> 
> That's still imposing a 1/2 of memory limit, though.

Yes, hopefully users will not notice.

> > Well, I do not want the complexity of two page sets. I think Rafael's
> > patches will provide almost equivalent functionality. Other than that,
> > all your features should be doable. I'm not saying I'm going to write
> > those patches myself, but I'll certainly not reject them just because
> > they are too big.
> 
> I'm sorry for making you think that having two pagesets is a complex
> issues. I know that when I first did it, I put tight restrictions on
> memory usage while the first pageset was written and used a separate
> memory pool. Since then, I've realised a far simpler way of handling
> this, and the code has been greatly simplified. In essence, all you need
> to do is make your I/O code generic enough that it can be passed a list
> of pages to write and put page cache pages in a separate list when
> figuring out what pages need to be saved. Then you save those pages
> before doing your atomic copy of the other pages, and reload them after
> restoring the atomic copy at resume time.

Okay, it may have gotten better. Anyway, this is the only part that
really needs to be in-kernel. Saving 50% of memory is still going to
produce *way* more responsive system than "save as little as
possible", and I hope it will be good enough.
								Pavel
-- 
Thanks, Sharp!

  reply	other threads:[~2005-11-16 22:47 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-15 21:29 [RFC] userland swsusp Pavel Machek
2005-11-15 21:32 ` [linux-pm] " Greg KH
2005-11-15 22:03   ` Pavel Machek
2005-11-15 22:25 ` Dave Jones
2005-11-15 23:32   ` Pavel Machek
2005-11-15 23:40     ` Dave Jones
2005-11-16  8:56       ` Pavel Machek
2005-11-16 21:41       ` Rafael J. Wysocki
2005-11-16  4:35     ` Dumitru Ciobarcianu
2005-11-16  6:14       ` Greg KH
2005-11-16  6:00         ` Nigel Cunningham
2005-11-16 16:50           ` Greg KH
2005-11-16 19:57             ` Nigel Cunningham
2005-11-16 21:35               ` Pavel Machek
2005-11-16 21:13                 ` Nigel Cunningham
2005-11-16 22:47                   ` Pavel Machek [this message]
2005-11-16 21:53                     ` Nigel Cunningham
2005-11-23 10:16                     ` Lorenzo Colitti
2005-11-23 12:02                       ` Pavel Machek
2005-11-19  9:32           ` Rob Landley
2005-11-19 23:51             ` Pavel Machek
2005-11-18 19:36   ` Alan Cox
2005-11-18 21:18     ` Dave Jones
2005-11-18 21:20       ` Greg KH
2005-11-19 23:43       ` Pavel Machek
2005-11-20 21:48         ` Dave Jones
2005-11-20 22:09           ` Pavel Machek
2005-11-21 11:47             ` Rafael J. Wysocki
2005-11-21 14:19               ` Pavel Machek
2005-11-18 21:23     ` Arjan van de Ven
2005-11-18 22:07       ` Alan Cox
2005-11-19  4:18         ` Jesse Barnes
2005-11-19  8:44         ` Arjan van de Ven
2005-11-18 23:34     ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2005-11-16 16:10 Gross, Mark
2005-11-16 16:44 ` Greg KH
2005-11-16 20:20   ` Nigel Cunningham
2005-11-16 22:05     ` Pavel Machek
2005-11-16 21:13       ` Nigel Cunningham
2005-11-16 22:41         ` Rafael J. Wysocki
2005-11-16 22:50         ` Pavel Machek
2005-11-17 17:02       ` Olivier Galibert
2005-11-17 19:57         ` Lee Revell
2005-11-17 20:12           ` Olivier Galibert
2005-11-17 20:20             ` Lee Revell
2005-11-17 20:37               ` Dave Jones
2005-11-17 20:46                 ` Lee Revell
2005-11-17 20:59                   ` Dave Jones
2005-11-17 20:54                 ` Lee Revell
2005-11-17 21:01                   ` Dave Jones
2005-11-17 21:06                   ` Chris Wright
2005-11-17 21:14                     ` Lee Revell
2005-11-17 21:18                       ` Chris Wright
2005-11-17 21:45                         ` Diego Calleja
2005-11-17 21:09                 ` Matthew Garrett
2005-11-17 21:16                   ` Lee Revell
2005-11-17 20:47             ` Lee Revell
2005-11-16 22:10     ` Greg KH
2005-11-16 21:25       ` Nigel Cunningham
2005-11-17  7:14         ` Arjan van de Ven
2005-11-16 19:10 ` Pavel Machek
2005-11-17 16:54   ` Olivier Galibert
2005-11-17 16:44     ` Greg KH
2005-11-17 17:03       ` Patrick Mochel
2005-11-17 17:31       ` Olivier Galibert
2005-11-17 20:15       ` Jacek Kawa
2005-11-17 21:56         ` Greg KH
2005-11-18 17:41           ` Jacek Kawa
2005-11-18 23:22     ` Pavel Machek
2005-11-17 18:50 Starikovskiy, Alexey Y

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=20051116224728.GI12505@elf.ucw.cz \
    --to=pavel@suse.cz \
    --cc=Dumitru.Ciobarcianu@iNES.RO \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.osdl.org \
    --cc=ncunningham@cyclades.com \
    /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