From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Pavel Machek <pavel@ucw.cz>
Cc: Andy Isaacson <adi@hexapodia.org>, linux-kernel@vger.kernel.org
Subject: Re: swsusp performance problems in 2.6.15-rc3-mm1
Date: Mon, 5 Dec 2005 22:18:18 +0100 [thread overview]
Message-ID: <200512052218.18769.rjw@sisk.pl> (raw)
In-Reply-To: <20051205121728.GF5509@elf.ucw.cz>
Hi,
On Monday, 5 December 2005 13:17, Pavel Machek wrote:
> > On recent kernels such as 2.6.14-rc2-mm1, a swsusp of my laptop (1.25
> > GB, P4M 1.4 GHz) was a pretty fast process; freeing memory took about 3
> > seconds or less,
That is strange. Without the recent patches It takes _much_ more time on my
box, and I have "only" 768 MB or RAM.
> > and writing out the swap image took less than 5
> > seconds, so within 15 seconds of running my suspend script power was
> > off.
>
> So suspend took 15 second, and boot another 5 to read the image + 20
> first time desktops are switched. ... ~40 second total.
>
> > The downside was that after suspend, *everything* needed to be paged
> > back in, so all my apps were *very* slow for the first few interactions.
> > It would take about 15 or 20 seconds for Firefox to repaint the first
> > time I switched to its virtual desktop, and it was perceptibly slower
> > than normal for the next 5 or 10 minutes of use.
That's much, IMHO.
> > Now that I'm running 2.6.15-rc3-mm1, the page-in problem seems to be
> > largely gone; I don't notice a significant lagginess after resuming from
> > swsusp.
> >
> > But the suspend process is *slow*. It takes a good 20 or 30 seconds to
> > write out the image, which makes the overall suspend process take close
> > to a minute; it's writing about 400 MB, and my disk seems to only be
> > good for about 18 MB/sec according to hdparm -t.
>
> Lets say 20 seconds suspend, plus 20 seconds resume, and no time
> needed to switch the desktops. So it is ~40 seconds total, again ;-).
I think there's no point in doing such calculations. In fact, above certain
critical RAM size (call it X), the more RAM in the box, the _worse_ it gets when
we try to free as little memory as possible (let alone trying to save _all_
of it). The only question is how great is X.
The Andy's numbers suggest X \approx 1.5 GB, if I correctly remeber his dmesg
outputs. Therefore, even if the current code is as effective for him as the old
one, it _will_ _not_ be so for someone who has, say, 2 GB of RAM or more.
IOW, there is a point at which it gets reasonable to free memory before
suspend for performance reasons and it only remains uncertain where
that point actually is and how much memory should be freed for given
RAM size.
> > And, the resume is about the same amount slower, too.
> >
> > Certainly there's a tradeoff to be made, and I'm glad to lose the slow
> > re-paging after resume, but I'm hoping that some kind of improvement can
> > be made in the suspend/resume time.
>
> Of course, there are many ways to improve suspend. Some are easy, some
> are hard, some can be merged, and some can not.
>
> > Could we perhaps throw away *half* the cached memory rather than all of
> > it?
>
> Should be easy, mergeable and possibly very effective. Relevant code
> is in kernel/power/disk.c.
For this purpose we'll need to tamper with mm, I think, and that won't be
easy.
OTOH, we can get similar result by just making the kernel free some
more memory _after_ we are sure we have enough memory to suspend.
IOW, after the code that's currently in swsusp_shrink_memory() has finished,
we can try to free some "extra" memory to improve performance, if
needed. The question is how much "extra" memory should be freed and
I'm afraid it will have to be tuned on the per-system, or at least
per-RAM-size, basis.
I think I can write an experimental patch for that, if Andy agrees to test
it. ;-)
Greetings,
Rafael
--
Beer is proof that God loves us and wants us to be happy - Benjamin Franklin
next prev parent reply other threads:[~2005-12-05 23:25 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-05 8:19 Andy Isaacson
2005-12-05 12:17 ` Pavel Machek
2005-12-05 13:58 ` Nigel Cunningham
2005-12-05 17:29 ` Pavel Machek
2005-12-05 21:11 ` Nigel Cunningham
2005-12-05 23:34 ` Pavel Machek
2005-12-06 1:26 ` Nigel Cunningham
2005-12-06 1:52 ` Pavel Machek
2005-12-05 22:44 ` Rafael J. Wysocki
2005-12-06 0:01 ` Pavel Machek
2005-12-05 22:28 ` Rafael J. Wysocki
2005-12-06 1:07 ` Nigel Cunningham
2005-12-06 1:37 ` Pavel Machek
2005-12-06 1:47 ` Andy Isaacson
2005-12-06 1:56 ` IDE performance on notebooks [was Re: swsusp performance problems in 2.6.15-rc3-mm1] Pavel Machek
2005-12-06 6:23 ` Andy Isaacson
2005-12-06 11:56 ` Pavel Machek
2005-12-06 1:57 ` swsusp performance problems in 2.6.15-rc3-mm1 Nigel Cunningham
2005-12-06 3:50 ` Mark Lord
2005-12-06 15:03 ` Mark Lord
2005-12-06 2:02 ` Nigel Cunningham
2005-12-06 12:09 ` Pavel Machek
2005-12-06 1:36 ` Nigel Cunningham
2005-12-06 2:06 ` Andy Isaacson
2005-12-06 2:21 ` Nigel Cunningham
2005-12-06 14:22 ` Pavel Machek
2005-12-07 22:05 ` Nigel Cunningham
2005-12-07 22:23 ` Pavel Machek
2005-12-06 2:21 ` Nigel Cunningham
2005-12-06 12:18 ` Pavel Machek
2005-12-06 18:15 ` Andy Isaacson
2005-12-07 1:05 ` Rafael J. Wysocki
2005-12-07 1:10 ` Pavel Machek
2005-12-07 11:17 ` Rafael J. Wysocki
2005-12-07 11:30 ` Pavel Machek
2005-12-08 22:42 ` Rafael J. Wysocki
2005-12-08 22:50 ` Pavel Machek
2005-12-05 21:18 ` Rafael J. Wysocki [this message]
2005-12-05 23:55 ` swsusp: how much memory to free? [was Re: swsusp performance problems in 2.6.15-rc3-mm1] Pavel Machek
2005-12-07 11:53 ` Rafael J. Wysocki
2005-12-07 11:59 ` Pavel Machek
2005-12-07 12:16 ` Rafael J. Wysocki
2005-12-07 12:18 ` Pavel Machek
2005-12-05 23:05 ` swsusp performance problems in 2.6.15-rc3-mm1 Rafael J. Wysocki
2005-12-06 0:12 ` Andy Isaacson
2005-12-06 0:51 ` Pavel Machek
2005-12-10 22:21 ` Andrew Morton
2005-12-10 23:07 ` Rafael J. Wysocki
2005-12-10 23:33 ` Andrew Morton
2005-12-11 12:16 ` Rafael J. Wysocki
2005-12-11 23:28 ` Pavel Machek
2005-12-12 17:45 ` 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=200512052218.18769.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=adi@hexapodia.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@ucw.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
Powered by JetHome