diff options
author | Andrew Morton <akpm@osdl.org> | 2006-09-26 02:32:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-26 11:48:58 -0400 |
commit | 546e0d271941dd1ff6961e2a1f7eac75f1fc277e (patch) | |
tree | 60c74a9598f7cb4622c1b6acd25df5df67284353 /include/linux/swap.h | |
parent | 8c002494b55119a3fd1dddee83b4fb75cfda47e5 (diff) |
[PATCH] swsusp: read speedup
Implement async reads for swsusp resuming.
Crufty old PIII testbox:
15.7 MB/s -> 20.3 MB/s
Sony Vaio:
14.6 MB/s -> 33.3 MB/s
I didn't implement the post-resume bio_set_pages_dirty(). I don't really
understand why resume needs to run set_page_dirty() against these pages.
It might be a worry that this code modifies PG_Uptodate, PG_Error and
PG_Locked against the image pages. Can this possibly affect the resumed-into
kernel? Hopefully not, if we're atomically restoring its mem_map?
Cc: Pavel Machek <pavel@ucw.cz>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Jens Axboe <axboe@suse.de>
Cc: Laurent Riffard <laurent.riffard@free.fr>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/swap.h')
-rw-r--r-- | include/linux/swap.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/swap.h b/include/linux/swap.h index 3d434cbffe2..e7c36ba2a2d 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -220,6 +220,7 @@ extern int swap_readpage(struct file *, struct page *); | |||
220 | extern int swap_writepage(struct page *page, struct writeback_control *wbc); | 220 | extern int swap_writepage(struct page *page, struct writeback_control *wbc); |
221 | extern int rw_swap_page_sync(int rw, swp_entry_t entry, struct page *page, | 221 | extern int rw_swap_page_sync(int rw, swp_entry_t entry, struct page *page, |
222 | struct bio **bio_chain); | 222 | struct bio **bio_chain); |
223 | extern int end_swap_bio_read(struct bio *bio, unsigned int bytes_done, int err); | ||
223 | 224 | ||
224 | /* linux/mm/swap_state.c */ | 225 | /* linux/mm/swap_state.c */ |
225 | extern struct address_space swapper_space; | 226 | extern struct address_space swapper_space; |