From: Jamie Lokier <jamie@shareable.org>
To: Nigel Cunningham <ncunningham@users.sourceforge.net>
Cc: Pavel Machek <pavel@suse.cz>,
Suspend development list <swsusp-devel@lists.sourceforge.net>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: -nice tree [was Re: [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?]]
Date: Sat, 27 Mar 2004 14:49:45 +0000 [thread overview]
Message-ID: <20040327144945.GG21884@mail.shareable.org> (raw)
In-Reply-To: <1080250718.6674.35.camel@calvin.wpcb.org.au>
Nigel Cunningham wrote:
> > Kernel could automagically select the right one..
>
> How?
Run two parallel tasks: 1. write pages to disk by queuing the I/Os;
2. compress unqueued pages.
The first task won't use much CPU because it's always waiting for disk
DMAs to complete. While it sleeps, the second task runs.
Alternatively this can be implemented using polling for I/O
completions in the second task, if that's easier.
The first task should keep the I/O queue full enough to sustain
writing, but not much fuller than that. Either a fixed queue length
will be fine, or it is easy to adjust the queue length dynamically by
enlarging it if any I/O completions occur when the queue is empty.
The second task consumes uncompressed pages and makes available
compressed pages.
When the first task wants to queue more pages for I/O, it first checks
the compressed-page list. If there are any, they are queued,
otherwise it consumes uncompressed pages.
This will automatically converge on an optimal balance between
compressed and uncompressed page writing, provided the disk is using
DMA, which they do on all modern system.
This is actually better than fully enabling or disabling compression.
Even on a slow CPU, the fastest strategy is to compress x% of the
pages. E.g. if the CPU can compress 1 page in the time it takes to
write 3 pages, you will suspend fastest by compressing about 30% of
all pages.
-- Jamie
next prev parent reply other threads:[~2004-03-27 14:50 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1079659165.15559.34.camel@calvin.wpcb.org.au>
[not found] ` <20040318193703.4c02f7f5.akpm@osdl.org>
[not found] ` <1079661410.15557.38.camel@calvin.wpcb.org.au>
[not found] ` <20040318200513.287ebcf0.akpm@osdl.org>
[not found] ` <1079664318.15559.41.camel@calvin.wpcb.org.au>
2004-03-21 22:00 ` swsusp problems [was Re: Your opinion on the merge?] Pavel Machek
2004-03-22 0:29 ` Pavel Machek
2004-03-22 20:55 ` Nigel Cunningham
2004-03-22 23:17 ` Pavel Machek
2004-03-23 9:53 ` [Swsusp-devel] " Jonathan Sambrook
2004-03-23 15:25 ` Micha Feigin
2004-03-23 21:47 ` Pavel Machek
2004-03-23 21:08 ` Nigel Cunningham
2004-03-23 22:17 ` Pavel Machek
2004-03-23 22:38 ` Nigel Cunningham
2004-03-23 23:07 ` Michael Frank
2004-03-23 23:17 ` Pavel Machek
2004-03-23 22:36 ` Nigel Cunningham
2004-03-23 23:45 ` Dumitru Ciobarcianu
2004-03-23 22:52 ` Nigel Cunningham
2004-03-24 0:05 ` Joel Jaeggli
2004-03-23 23:10 ` Nigel Cunningham
2004-03-23 22:43 ` Dmitry Torokhov
2004-03-23 23:32 ` Pavel Machek
2004-03-23 22:40 ` Nigel Cunningham
2004-03-23 23:44 ` Pavel Machek
2004-03-24 3:12 ` Michael Frank
2004-03-24 10:17 ` Pavel Machek
2004-03-24 22:46 ` Michael Frank
2004-03-24 23:23 ` Pavel Machek
2004-03-24 23:56 ` Michael Frank
2004-03-25 0:23 ` -nice tree [was Re: [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?]] Pavel Machek
2004-03-25 0:50 ` Michael Frank
2004-03-25 1:41 ` Pavel Machek
[not found] ` <200403250857.08920.matthias.wieser@hiasl.net>
2004-03-25 20:39 ` Nigel Cunningham
2004-03-25 22:27 ` Pavel Machek
2004-03-25 21:38 ` Nigel Cunningham
2004-03-25 22:54 ` Pavel Machek
2004-03-26 5:59 ` Michael Frank
2004-03-26 10:50 ` Pavel Machek
2004-03-26 13:17 ` Michael Frank
2004-03-27 14:49 ` Jamie Lokier [this message]
2004-03-29 12:10 ` fast compressed fs (was Re: -nice tree) Pavel Machek
2004-03-26 5:59 ` -nice tree [was Re: [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?]] Michael Frank
2004-03-26 10:22 ` Pavel Machek
2004-03-26 20:30 ` Nigel Cunningham
2004-03-26 22:22 ` Pavel Machek
2004-03-27 2:08 ` Nigel Cunningham
2004-03-27 3:37 ` Luke-Jr
2004-03-27 4:28 ` Micha Feigin
2004-03-27 4:40 ` Luke-Jr
2004-03-27 19:50 ` Micha Feigin
2004-03-27 20:03 ` Luke-Jr
2004-03-27 21:01 ` Paranoia is fun [Was Re: -nice tree [was Re: [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?]]] Michael Frank
2004-03-27 21:40 ` Luke-Jr
2004-03-27 21:29 ` -nice tree [was Re: [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?]] Pavel Machek
2004-03-28 0:27 ` Micha Feigin
2004-03-27 2:21 ` Micha Feigin
2004-03-29 12:13 ` Pavel Machek
2004-03-24 4:52 ` [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?] Dmitry Torokhov
2004-03-24 5:04 ` Nigel Cunningham
2004-03-24 6:22 ` Michael Frank
2004-03-24 5:46 ` Nigel Cunningham
2004-03-24 7:31 ` Michael Frank
2004-03-24 10:26 ` Pavel Machek
2004-03-25 0:06 ` Jonathan Sambrook
2004-03-24 9:32 ` Karol Kozimor
2004-03-24 14:15 ` Michael Frank
2004-03-25 0:35 ` Karol Kozimor
2004-03-24 5:06 ` sleeping in request function mohanlal jangir
[not found] ` <20040324083313.GG3377@suse.de>
2004-03-25 3:45 ` mohanlal jangir
2004-03-24 10:22 ` [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?] Pavel Machek
2004-03-24 12:48 ` Dmitry Torokhov
2004-03-24 15:18 ` Pavel Machek
2004-03-24 20:22 ` Jonathan Sambrook
2004-03-24 21:06 ` Michael Frank
2004-03-25 22:13 ` swsusp is not reliable. Face it. [was Re: [Swsusp-devel] Re: swsusp problems] Pavel Machek
2004-03-25 21:33 ` Nigel Cunningham
2004-03-25 22:52 ` Pavel Machek
2004-03-26 5:59 ` Michael Frank
2004-03-26 9:59 ` Pavel Machek
2004-03-26 10:21 ` Michael Frank
2004-03-25 22:08 ` [Swsusp-devel] Re: swsusp problems [was Re: Your opinion on the merge?] Pavel Machek
2004-03-24 22:05 ` Markus Gaugusch
2004-03-24 21:25 ` Nigel Cunningham
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=20040327144945.GG21884@mail.shareable.org \
--to=jamie@shareable.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ncunningham@users.sourceforge.net \
--cc=pavel@suse.cz \
--cc=swsusp-devel@lists.sourceforge.net \
/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