public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Serge E. Hallyn" <serue@us.ibm.com>
To: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: Oren Laadan <orenl@cs.columbia.edu>,
	containers@lists.linux-foundation.org, jeremy@goop.org,
	linux-kernel@vger.kernel.org, arnd@arndb.de
Subject: Re: [RFC v2][PATCH 4/9] Memory management - dump state
Date: Wed, 27 Aug 2008 15:34:27 -0500	[thread overview]
Message-ID: <20080827203427.GA1158@us.ibm.com> (raw)
In-Reply-To: <1219851696.8680.67.camel@nimitz>

Quoting Dave Hansen (dave@linux.vnet.ibm.com):
> On Tue, 2008-08-26 at 20:14 -0400, Oren Laadan wrote:
> > >>>> +
> > >>>> +	while (addr < end) {
> > >>>> +		struct page *page;
> > >>>> +
> > >>>> +		/* simplified version of get_user_pages(): already have vma,
> > >>>> +		* only need FOLL_TOUCH, and (for now) ignore fault stats */
> > >>>> +
> > >>>> +		cond_resched();
> > >>>> +		while (!(page = follow_page(vma, addr, FOLL_TOUCH))) {
> > >>>> +			ret = handle_mm_fault(vma->vm_mm, vma, addr, 0);
> > >>>> +			if (ret & VM_FAULT_ERROR) {
> > >>>> +				if (ret & VM_FAULT_OOM)
> > >>>> +					ret = -ENOMEM;
> > >>>> +				else if (ret & VM_FAULT_SIGBUS)
> > >>>> +					ret = -EFAULT;
> > >>>> +				else
> > >>>> +					BUG();
> > >>>> +				break;
> > >>>> +			}
> > >>>> +			cond_resched();
> > >>>> +		}
> > >>> At best this needs to get folded back into its own function.  This is
> > >> This is almost identical to the original - see the preceding comment.
> > > 
> > > Exactly.  The code is copy-and-pasted.  If there's a bug in the
> > > original, who will change this one?  Better to simply consolidate the
> > > code into one copy.
> > > 
> > >>> pretty hard to read as-is.  Also, are there truly no in-kernel functions
> > >>> that can be used for this?
> > >> Can you suggest one ?
> > > 
> > > This is where the mentality has to shift.  Instead of thinking "there is
> > > no exact in-kernel match for what I want here" we need to consider that
> > > we can modify the in-kernel ones.  They can be modified to suit both
> > > existing and the new needs that we have.
> > 
> > I agree.
> > 
> > However, my main goal now is not to make this patch perfect, but to provide
> > a viable proof-of-concept that demonstrates how we want to do things. Unless
> > you feel we are near ready to send these for inclusion soon (...), I intend
> > to prioritize design and functionality.
> 
> So, you currently have buy-in on this basic approach from the OpenVZ
> guys, and probably Ingo.  If you get too far along in the "design and
> functionality" and a community member comes up with a really good
> objection to some basic part of the "design and functionality" you're
> going to have a lot of code to rewrite.
> 
> I'm trying to get minimized the quantity of "design and functionality"
> down to the bare minimum set where we can get this merged.  So, yes, I
> do think these should be sent for inclusion soon.
> 
> I believe that we're on course to create another large out-of-tree patch
> set that does in-kernel checkpoint/restart.  We have no shortage of
> those.  It's been done many times before.
> 
> This one will *HOPEFULLY* be different from all the rest when it gets
> merged.  

It's true there are out-of-tree proofs-of-concept for in-kernel c/r, but
on the other hand it is nice seeing where Oren's code is going.  Based
on the patchsets you and he have been sending, the impression I've
gotten was that Oren was fleshing out the longer-term tree, while you
were working on the upstream-acceptable minimal patchset.  That seems
like a good model to me.  (Was I wrong about either of your intents?)

It does mean that much of Oren's patchset may end up having to be
re-written based on how Dave's patches look when they get upstream, but
I'm sure Oren knows that's par for the course and doesn't mind.

(Or, is that too much effort required on your part to try and
cherrypick bits of Oren's changes back into your tree?)

In any case, if that *is* the model, then I'd really like to see a
repost of your (Dave's) simplified patchset.  I think we need to
decide precisly which features we want to try to push first (I
thought we were not going to support fds?), throw out any extraneous
infrastructure, put the source for the one-and-only program that
it can checkpoint and restart in the patch description, and see what
feedback we get from the community.  The reason it'll be good to
have Oren continue on his own path is that you know we'll get
questions like "well how are you going to handle (X)", so then
we can point them to Oren's tree.

At least, that's how I was seeing it.

-serge

  parent reply	other threads:[~2008-08-27 20:34 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-21  2:58 [RFC v2][PATCH 1/9] kernel based checkpoint-restart Oren Laadan
2008-08-21  3:03 ` [RFC v2][PATCH 1/9] Create trivial sys_checkpoint/sys_restart syscalls Oren Laadan
2008-08-21  5:17   ` Oren Laadan
2008-08-22 19:32   ` Dave Hansen
2008-08-22 20:11     ` Dave Hansen
2008-08-22 21:20     ` Oren Laadan
2008-08-21  3:04 ` [RFC v2][PATCH 2/9] General infrastructure for checkpoint restart Oren Laadan
2008-08-21  9:35   ` Louis Rilling
2008-08-24  5:58     ` Oren Laadan
2008-08-22 20:01   ` Dave Hansen
2008-08-25  2:47     ` Oren Laadan
2008-08-26 16:42       ` Dave Hansen
2008-08-27  0:38         ` Oren Laadan
2008-08-21  3:04 ` [RFC v2][PATCH 3/9] x86 support for checkpoint/restart Oren Laadan
2008-08-22 20:17   ` Dave Hansen
2008-08-21  3:05 ` [RFC v2][PATCH 4/9] Memory management - dump state Oren Laadan
2008-08-21  7:30   ` Ingo Molnar
2008-08-21  8:01     ` Justin P. Mattock
2008-08-21 10:28     ` Balbir Singh
2008-08-21 11:59       ` Ingo Molnar
2008-08-21  9:53   ` Louis Rilling
2008-08-22 21:21     ` Oren Laadan
2008-08-22 20:37   ` Dave Hansen
2008-08-24  5:40     ` Oren Laadan
2008-08-26 16:33       ` Dave Hansen
2008-08-27  0:14         ` Oren Laadan
2008-08-27 15:41           ` Dave Hansen
2008-08-27 15:57             ` Louis Rilling
2008-08-27 16:12               ` Dave Hansen
2008-08-27 16:19                 ` Jeremy Fitzhardinge
2008-08-27 20:34             ` Serge E. Hallyn [this message]
2008-08-27 20:38               ` Dave Hansen
2008-08-27 20:48                 ` Serge E. Hallyn
2008-08-27 20:56                   ` Dave Hansen
2008-08-31  7:16                     ` Oren Laadan
2008-08-31 17:34                       ` Cedric Le Goater
2008-09-03 11:43                         ` [Devel] " Andrey Mirkin
2008-09-03 12:15                           ` Cedric Le Goater
2008-09-03 13:29                             ` Andrey Mirkin
2008-09-02 15:32                       ` Serge E. Hallyn
2008-08-21  3:05 ` [RFC v2][PATCH 5/9] Memory managemnet - restore state Oren Laadan
2008-08-21 10:07   ` Louis Rilling
2008-08-21  3:06 ` [RFC v2][PATCH 6/9] Checkpoint/restart: initial documentation Oren Laadan
2008-08-21  3:06 ` [RFC v2][PATCH 7/9] Infrastructure for shared objects Oren Laadan
2008-08-21 10:40   ` Louis Rilling
2008-08-26 17:01     ` Dave Hansen
2008-08-27  8:26       ` Louis Rilling
2008-08-21  3:07 ` [RFC v2][PATCH 8/9] File descriprtors - dump state Oren Laadan
2008-08-21 11:06   ` Louis Rilling
2008-08-25  3:28     ` Oren Laadan
2008-08-25 10:30       ` Louis Rilling
2008-08-21  3:07 ` [RFC v2][PATCH 9/9] File descriprtors (restore) Oren Laadan
2008-08-21  5:26   ` Oren Laadan
2008-08-21  5:15 ` [RFC v2][PATCH 1/9] kernel based checkpoint-restart Oren Laadan

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=20080827203427.GA1158@us.ibm.com \
    --to=serue@us.ibm.com \
    --cc=arnd@arndb.de \
    --cc=containers@lists.linux-foundation.org \
    --cc=dave@linux.vnet.ibm.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=orenl@cs.columbia.edu \
    /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