From: "Serge E. Hallyn" <serge@hallyn.com>
To: Cedric Le Goater <legoater@free.fr>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>,
containers <containers@lists.linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Dave Hansen <dave@linux.vnet.ibm.com>,
Christoph Hellwig <hch@infradead.org>,
Ingo Molnar <mingo@elte.hu>,
Alexey Dobriyan <adobriyan@gmail.com>
Subject: Re: [RFC][PATCH 00/11] track files for checkpointability
Date: Thu, 12 Mar 2009 10:30:48 -0500 [thread overview]
Message-ID: <20090312153048.GA11147@hallyn.com> (raw)
In-Reply-To: <49B76D91.1020807@free.fr>
Quoting Cedric Le Goater (legoater@free.fr):
> >> And if Ingo's requirement is fulfilled, would any C/R patchset be acceptable ?
> >
> > Yup, no matter how hideous :) Ok not really.
> >
> > But the point was that it wasn't Dave not understanding Alexey's
> > suggestion, but Greg not understanding Ingo's. If you think Ingo's
> > goal isn't worthwhile or achievable, then argue that (as I am), don't
> > keep elaborating on something we all agree will be needed (Alexey's
> > suggestion or some other way of doing a true may-be-checkpointed test).
>
> I rather spend my time on enabling things rather than forbid them.
That sure sounds productive. How could I argue with that.
But wait, haven't several teams been doing that for years? So why is
c/r not in the upstream kernel? Could it be that ignoring the
upstream maintainers' concerns about (a) treating the feature as a
toy, (b) long-term maintainability, and (c) c/r becoming an impediment
to future features, and instead hacking away at our toy feature, is
*not* always the best course?
Now I actually don't think you believe it's politically possible for
c/r to get upstream. But I do.
Getting back on track. Ingo's concern is that this turn into a toy feature
rather than something which serious apps can rely on. To address that
he wants an application to be able to tell whether or not it is
checkpointable, and, if not, then why not.
Now Alexey also has a suggestion for addressing this. It has (at least)
two shortcomings relative to Dave's:
1. it is more prone to race conditions. If an app opens an
uncheckpointable file briefly and then closes it, and later reopens
it, then it may think it is checkpointable even though it could have
already known it is not always. If you want to argue that returning
-EAGAIN is better in that case, that seems reasonable.
2. For repeatedly checking the checkpointability of large
applications it could be much more costly. For instance, if we have
to check the flags on each vma, and an application has 10s or 100s of
gigs of memory, each check for checkpointability would require walking
all those vmas each time. Dave's approach has the advantage of only
checking those when the resource is opened.
Hmm, plus
3. One of the things Ingo likes about Dave's approach, which
you may think is bogus, is that users of an uncheckpointable application
will scream more loudly if the app becomes permanently uncheckpointable
(and they know why), than if it sometimes works and sometimes doesn't
(-EAGAIN).
The funny thing is, for simplicity I actually prefer Alexey's approach.
It's easier (and therefore seems more robust) to tell if a task has a
particular sort of file at a definite point in time, than to try and
catch all the ways such an open file can be opened or received. Which
is where Ingo's LSM suggestion is seductive, but I'm convinced that
approach would be politically impossible.
-serge
next prev parent reply other threads:[~2009-03-12 15:27 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
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 [this message]
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=20090312153048.GA11147@hallyn.com \
--to=serge@hallyn.com \
--cc=adobriyan@gmail.com \
--cc=containers@lists.linux-foundation.org \
--cc=dave@linux.vnet.ibm.com \
--cc=hch@infradead.org \
--cc=legoater@free.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=serue@us.ibm.com \
/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