From: Dave Hansen <dave@linux.vnet.ibm.com>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: containers <containers@lists.linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Christoph Hellwig <hch@infradead.org>,
Ingo Molnar <mingo@elte.hu>
Subject: Re: [RFC][PATCH 00/11] track files for checkpointability
Date: Thu, 05 Mar 2009 11:16:07 -0800 [thread overview]
Message-ID: <1236280567.22399.99.camel@nimitz> (raw)
In-Reply-To: <20090305174037.GA2274@x200.localdomain>
On Thu, 2009-03-05 at 20:40 +0300, Alexey Dobriyan wrote:
> On Thu, Mar 05, 2009 at 08:38:57AM -0800, Dave Hansen wrote:
> > This takes a suggestion of Ingo's along with comments from lots of
> > other people. It can track whether a given file is able to be
> > checkpointed. It introduces a f_op to allow easy customization
> > like the reset of the VFS.
>
> Here is how alternative looks like
> * without touching VFS at all
> * without adding default handlers
Are these bad things? If this was harmful to the VFS, I can bet
Christoph would be speaking up. As far as the default handlers, blame
Christoph. :)
> * without duplicate code every ->checkpoint hook will have
Well, I had actually planned to break the generic function up into a
"common" function that all of the handlers can call or could be called
before each handler. This is trivially fixable, but it would look kinda
goofy without some code to use it.
> * without largely useless "special file" messages
> (what's so special about it?)
Very true. I'll improve that one.
> * without adding userspace-visible /proc/*/checkpointable
Ingo, could you weigh in on how you expected this "checkpointable" flag
to get exposed to and checked by userspace?
> * without recalculating "checkpointable" property on fs_struct
> on every C/R=y kernel.
Yeah, this is certainly less than ideal. Although, I haven't seen your
proposal for where to tie your code into the kernel. Do you suggest
that we do nothing during normal kernel runtime and all the checking at
sys_checkpoint() time?
> * with "ban by default" policy as well
> * with error message immediatly understandable by developer:
>
> cr_check_file: can't checkpoint file f61a0f40, ->f_op = socket_file_ops+0x0/0x1c0
That's a much better error message than I have. I think I'll steal it
if you don't mind.
> It may lack some printk, but printks are trivial to insert including
> using d_path for precise info.
This is definitely workable approach. However, could you show how you
would support /dev/null and, say, /proc/$$/stat? I've shown what it
takes to do that in my patches, and I think it would show a lot about
your approach.
-- Dave
next prev parent reply other threads:[~2009-03-05 19:17 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-05 16:38 [RFC][PATCH 00/11] track files for checkpointability Dave Hansen
2009-03-05 16:38 ` [RFC][PATCH 01/11] kill '_data' in cr_hdr_fd_data name Dave Hansen
2009-03-05 16:38 ` [RFC][PATCH 02/11] breakout fdinfo sprintf() into its own function Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 03/11] Introduce generic_file_checkpoint() Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 04/11] actually use f_op in checkpoint code Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 05/11] add generic checkpoint f_op to ext fses Dave Hansen
2009-03-13 2:50 ` Oren Laadan
2009-03-05 16:39 ` [RFC][PATCH 06/11] add checkpoint_file_generic() to /proc Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 07/11] file c/r: expose functions to query fs support Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 08/11] expose file checkpointability and reasoning in /proc Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 09/11] check files for checkpointability Dave Hansen
2009-03-09 17:38 ` Matt Helsley
2009-03-12 19:14 ` Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 10/11] add checkpoint/restart compile helper Dave Hansen
2009-03-05 16:39 ` [RFC][PATCH 11/11] optimize c/r check in dup_fd() Dave Hansen
2009-03-05 17:40 ` [RFC][PATCH 00/11] track files for checkpointability Alexey Dobriyan
2009-03-05 19:16 ` Dave Hansen [this message]
2009-03-05 21:08 ` Alexey Dobriyan
2009-03-05 21:27 ` Dave Hansen
2009-03-05 22:00 ` Alexey Dobriyan
2009-03-05 22:24 ` Dave Hansen
2009-03-06 14:34 ` Serge E. Hallyn
2009-03-06 15:48 ` Dave Hansen
2009-03-06 16:23 ` Serge E. Hallyn
2009-03-06 16:46 ` Dave Hansen
2009-03-06 18:24 ` Serge E. Hallyn
2009-03-06 19:42 ` Dave Hansen
2009-03-13 3:05 ` Oren Laadan
2009-03-06 15:08 ` Greg Kurz
2009-03-06 15:35 ` Serge E. Hallyn
2009-03-06 17:36 ` Cedric Le Goater
2009-03-06 18:30 ` Serge E. Hallyn
2009-03-11 7:51 ` Cedric Le Goater
2009-03-12 15:30 ` Serge E. Hallyn
2009-03-13 6:36 ` Ensuring c/r maintainability (WAS Re: [RFC][PATCH 00/11] track files for checkpointability) Matt Helsley
2009-03-13 17:53 ` Serge E. Hallyn
2009-03-05 19:44 ` [RFC][PATCH 00/11] track files for checkpointability Dave Hansen
2009-03-05 18:13 ` Serge E. Hallyn
2009-03-05 18:16 ` Dave Hansen
2009-03-10 15:57 ` Nathan Lynch
2009-03-10 16:00 ` Nathan Lynch
2009-03-10 16:23 ` Serge E. Hallyn
2009-03-10 16:20 ` Serge E. Hallyn
2009-03-10 17:23 ` Nathan Lynch
2009-03-10 17:45 ` Serge E. Hallyn
2009-03-10 17:47 ` Dave Hansen
2009-03-10 16:22 ` Dave Hansen
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=1236280567.22399.99.camel@nimitz \
--to=dave@linux.vnet.ibm.com \
--cc=adobriyan@gmail.com \
--cc=containers@lists.linux-foundation.org \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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