From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Jiri Slaby <jslaby@suse.cz>
Cc: jirislaby@gmail.com, pavel@ucw.cz,
linux-pm@lists.linux-foundation.org,
linux-kernel@vger.kernel.org,
Nigel Cunningham <ncunningham@crca.org.au>
Subject: Re: [RFC 07/15] PM / Hibernate: add sws_modules_ops
Date: Thu, 25 Mar 2010 23:02:53 +0100 [thread overview]
Message-ID: <201003252302.53673.rjw@sisk.pl> (raw)
In-Reply-To: <1269361063-3341-7-git-send-email-jslaby@suse.cz>
On Tuesday 23 March 2010, Jiri Slaby wrote:
> For now they will only hold swap operations. In next patches, user
> support will be converted to ops as well to have a single layer and
> can push pages instead of pulling them.
>
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> Cc: Nigel Cunningham <ncunningham@crca.org.au>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> ---
> kernel/power/hibernate.c | 2 +
> kernel/power/power.h | 13 +++++++++++
> kernel/power/swap.c | 51 ++++++++++++++++++++++++++++++---------------
> 3 files changed, 49 insertions(+), 17 deletions(-)
>
> diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
> index da5288e..762431e 100644
> --- a/kernel/power/hibernate.c
> +++ b/kernel/power/hibernate.c
> @@ -34,6 +34,8 @@ dev_t swsusp_resume_device;
> sector_t swsusp_resume_block;
> int in_suspend __nosavedata = 0;
>
> +struct sws_module_ops *sws_io_ops;
> +
> enum {
> HIBERNATION_INVALID,
> HIBERNATION_PLATFORM,
> diff --git a/kernel/power/power.h b/kernel/power/power.h
> index 6c4b4fa..0f08de4 100644
> --- a/kernel/power/power.h
> +++ b/kernel/power/power.h
> @@ -115,6 +115,17 @@ struct snapshot_handle {
> */
> #define data_of(handle) ((handle).buffer)
>
> +struct sws_module_ops {
I'd call that hibernate_io_ops FWIW.
> + unsigned long (*storage_available)(void);
free_space() ?
> +
> + int (*get_reader)(unsigned int *flags_p);
> + int (*put_reader)(void);
> + int (*get_writer)(void);
> + int (*put_writer)(unsigned int flags, int error);
I agree with Pavel that these names are not exactly self-documenting.
Would it make sense to use names like reader_start(), reader_finish() and
similarly for "writer"?
> + int (*read_page)(void *addr, struct bio **bio_chain);
> + int (*write_page)(void *addr, struct bio **bio_chain);
Also one might think of adding a data pointer to this structure that will
be passed to the callbacks. This way it would be easier to think of our
storage spaces as objects, each with a set of methods and a pointer to
the data they operate on.
Rafael
next prev parent reply other threads:[~2010-03-25 22:00 UTC|newest]
Thread overview: 158+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-23 16:17 [RFC 01/15] FS: libfs, implement simple_write_to_buffer Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 02/15] PM / Hibernate: snapshot cleanup Jiri Slaby
2010-03-24 20:29 ` Pavel Machek
2010-03-24 20:29 ` Pavel Machek
2010-03-24 22:35 ` Rafael J. Wysocki
2010-03-24 22:35 ` Rafael J. Wysocki
2010-03-25 5:29 ` Pavel Machek
2010-03-25 5:29 ` Pavel Machek
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 03/15] PM / Hibernate: separate block_io Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-24 20:30 ` Pavel Machek
2010-03-24 21:22 ` Jiri Slaby
2010-03-24 21:22 ` Jiri Slaby
2010-03-24 22:58 ` Nigel Cunningham
2010-03-24 22:58 ` Nigel Cunningham
2010-03-25 2:35 ` [linux-pm] " Nigel Cunningham
2010-03-25 20:12 ` Rafael J. Wysocki
2010-03-25 20:13 ` Nigel Cunningham
2010-03-25 20:13 ` [linux-pm] " Nigel Cunningham
2010-03-25 20:33 ` Rafael J. Wysocki
2010-03-25 20:36 ` Nigel Cunningham
2010-03-25 20:36 ` [linux-pm] " Nigel Cunningham
2010-03-25 20:33 ` Rafael J. Wysocki
2010-03-29 13:30 ` [linux-pm] " Pavel Machek
2010-03-29 13:30 ` Pavel Machek
2010-03-25 20:12 ` Rafael J. Wysocki
2010-03-25 2:35 ` Nigel Cunningham
2010-03-25 14:29 ` Pavel Machek
2010-03-25 14:29 ` Pavel Machek
2010-03-24 20:30 ` Pavel Machek
2010-03-23 16:17 ` [RFC 04/15] PM / Hibernate: move the first_sector out of swsusp_write Jiri Slaby
2010-03-24 20:31 ` Pavel Machek
2010-03-25 21:26 ` Rafael J. Wysocki
2010-03-25 21:26 ` Rafael J. Wysocki
2010-03-24 20:31 ` Pavel Machek
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 05/15] PM / Hibernate: group swap ops Jiri Slaby
2010-03-25 21:28 ` Rafael J. Wysocki
2010-03-25 21:28 ` Rafael J. Wysocki
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 06/15] PM / Hibernate: swap, remove swap_map_handle usages Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-24 20:33 ` Pavel Machek
2010-03-24 21:29 ` Jiri Slaby
2010-03-25 21:35 ` Rafael J. Wysocki
2010-03-25 21:35 ` Rafael J. Wysocki
2010-03-24 21:29 ` Jiri Slaby
2010-03-24 20:33 ` Pavel Machek
2010-03-23 16:17 ` [RFC 07/15] PM / Hibernate: add sws_modules_ops Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-24 20:36 ` Pavel Machek
2010-03-24 21:31 ` Jiri Slaby
2010-03-24 21:31 ` Jiri Slaby
2010-03-24 20:36 ` Pavel Machek
2010-03-25 22:02 ` Rafael J. Wysocki [this message]
2010-03-25 22:02 ` Rafael J. Wysocki
2010-03-23 16:17 ` [RFC 08/15] PM / Hibernate: add user module_ops Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-25 22:07 ` Rafael J. Wysocki
2010-03-25 22:07 ` Rafael J. Wysocki
2010-03-26 9:43 ` Jiri Slaby
2010-03-26 9:43 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 09/15] PM / Hibernate: user, implement user_ops writer Jiri Slaby
2010-03-24 20:42 ` Pavel Machek
2010-03-24 21:40 ` Jiri Slaby
2010-03-24 21:40 ` Jiri Slaby
2010-03-25 21:36 ` Pavel Machek
2010-03-25 21:36 ` Pavel Machek
2010-03-25 22:14 ` Rafael J. Wysocki
2010-03-25 22:14 ` Rafael J. Wysocki
2010-03-26 9:34 ` Jiri Slaby
2010-03-26 9:34 ` Jiri Slaby
2010-03-26 22:04 ` Rafael J. Wysocki
2010-03-26 22:04 ` Rafael J. Wysocki
2010-03-29 15:33 ` Jiri Slaby
2010-03-29 15:33 ` Jiri Slaby
2010-03-29 22:09 ` Rafael J. Wysocki
2010-03-30 1:14 ` Nigel Cunningham
2010-03-30 21:03 ` Rafael J. Wysocki
2010-03-31 2:31 ` Nigel Cunningham
2010-03-31 14:47 ` Pavel Machek
2010-03-31 21:01 ` Nigel Cunningham
2010-03-31 20:25 ` Rafael J. Wysocki
2010-03-31 21:06 ` Nigel Cunningham
2010-03-31 21:36 ` Rafael J. Wysocki
2010-04-04 23:08 ` Nigel Cunningham
2010-04-04 23:13 ` Rafael J. Wysocki
2010-03-31 21:54 ` Nigel Cunningham
2010-03-30 8:59 ` Jiri Slaby
2010-03-30 20:50 ` Rafael J. Wysocki
2010-03-31 14:41 ` Jiri Slaby
2010-03-31 20:29 ` Rafael J. Wysocki
2010-04-21 21:22 ` Jiri Slaby
2010-04-22 3:43 ` Rafael J. Wysocki
2010-03-27 7:02 ` Pavel Machek
2010-03-27 7:02 ` Pavel Machek
2010-03-24 20:42 ` Pavel Machek
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 10/15] PM / Hibernate: user, implement user_ops reader Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-25 5:30 ` what the patches do " Pavel Machek
2010-03-25 5:30 ` Pavel Machek
2010-03-25 5:42 ` Nigel Cunningham
2010-03-25 6:12 ` Nigel Cunningham
2010-03-25 6:12 ` [linux-pm] " Nigel Cunningham
2010-03-25 20:14 ` Rafael J. Wysocki
2010-03-25 20:21 ` Nigel Cunningham
2010-03-25 20:21 ` Nigel Cunningham
2010-03-25 20:29 ` Rafael J. Wysocki
2010-03-25 20:35 ` Nigel Cunningham
2010-03-25 21:13 ` Rafael J. Wysocki
2010-03-25 21:13 ` Rafael J. Wysocki
2010-03-25 20:35 ` Nigel Cunningham
2010-03-25 21:26 ` Pavel Machek
2010-03-25 21:26 ` Pavel Machek
2010-03-25 21:49 ` Nigel Cunningham
2010-03-25 21:49 ` [linux-pm] " Nigel Cunningham
2010-04-02 6:36 ` Pavel Machek
2010-04-02 17:03 ` Rafael J. Wysocki
2010-04-02 17:03 ` [linux-pm] " Rafael J. Wysocki
2010-04-02 6:36 ` Pavel Machek
2010-03-25 20:29 ` Rafael J. Wysocki
2010-03-25 20:14 ` Rafael J. Wysocki
2010-03-25 5:42 ` Nigel Cunningham
2010-03-25 22:21 ` Rafael J. Wysocki
2010-03-25 22:21 ` Rafael J. Wysocki
2010-03-23 16:17 ` [RFC 11/15] PM / Hibernate: add chunk i/o support Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-25 22:38 ` Rafael J. Wysocki
2010-03-25 22:38 ` Rafael J. Wysocki
2010-03-26 9:09 ` Jiri Slaby
2010-03-26 9:09 ` Jiri Slaby
2010-03-26 10:02 ` Nigel Cunningham
2010-03-26 10:02 ` Nigel Cunningham
2010-03-23 16:17 ` [RFC 12/15] PM / Hibernate: split snapshot_read_next Jiri Slaby
2010-03-25 22:44 ` Rafael J. Wysocki
2010-03-25 22:44 ` Rafael J. Wysocki
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 13/15] PM / Hibernate: split snapshot_write_next Jiri Slaby
2010-03-23 16:17 ` Jiri Slaby
2010-03-25 22:46 ` Rafael J. Wysocki
2010-03-25 22:46 ` Rafael J. Wysocki
2010-03-23 16:17 ` [RFC 14/15] PM / Hibernate: dealign swsusp_info Jiri Slaby
2010-03-25 22:46 ` Rafael J. Wysocki
2010-03-25 22:46 ` Rafael J. Wysocki
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 16:17 ` [RFC 15/15] PM / Hibernate: move non-swap code to snapshot.c Jiri Slaby
2010-03-25 22:50 ` Rafael J. Wysocki
2010-03-25 22:50 ` Rafael J. Wysocki
2010-03-23 16:17 ` Jiri Slaby
2010-03-23 21:51 ` [RFC 01/15] FS: libfs, implement simple_write_to_buffer Rafael J. Wysocki
2010-03-23 21:51 ` Rafael J. Wysocki
2010-03-23 22:09 ` [linux-pm] " Nigel Cunningham
2010-03-23 22:09 ` Nigel Cunningham
2010-03-24 22:13 ` Rafael J. Wysocki
2010-03-24 22:13 ` 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=201003252302.53673.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=jirislaby@gmail.com \
--cc=jslaby@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=ncunningham@crca.org.au \
--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 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.