All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oren Laadan <orenl@cs.columbia.edu>
To: Louis.Rilling@kerlabs.com
Cc: dave@linux.vnet.ibm.com, arnd@arndb.de, jeremy@goop.org,
	linux-kernel@vger.kernel.org,
	containers@lists.linux-foundation.org
Subject: Re: [RFC v2][PATCH 2/9] General infrastructure for checkpoint	restart
Date: Sun, 24 Aug 2008 01:58:36 -0400	[thread overview]
Message-ID: <48B0F88C.2090403@cs.columbia.edu> (raw)
In-Reply-To: <20080821093529.GG581@hawkmoon.kerlabs.com>



Louis Rilling wrote:
> On Wed, Aug 20, 2008 at 11:04:13PM -0400, Oren Laadan wrote:
>> Add those interfaces, as well as helpers needed to easily manage the
>> file format. The code is roughly broken out as follows:
>>
>> ckpt/sys.c - user/kernel data transfer, as well as setup of the
>> checkpoint/restart context (a per-checkpoint data structure for
>> housekeeping)
>>
>> ckpt/checkpoint.c - output wrappers and basic checkpoint handling
>>
>> ckpt/restart.c - input wrappers and basic restart handling
>>
>> Patches to add the per-architecture support as well as the actual
>> work to do the memory checkpoint follow in subsequent patches.
>>
> 
> [...]
> 
>> diff --git a/checkpoint/sys.c b/checkpoint/sys.c
>> new file mode 100644
>> index 0000000..2891c48
>> --- /dev/null
>> +++ b/checkpoint/sys.c
> 
> [...]
> 
>> +/*
>> + * helpers to manage CR contexts: allocated for each checkpoint and/or
>> + * restart operation, and persists until the operation is completed.
>> + */
>> +
>> +static atomic_t cr_ctx_count;	/* unique checkpoint identifier */
> 
> I thought we agreed that this counter should be per-container. Perhaps add a
> TODO here?

True.

> 
>> +
>> +void cr_ctx_free(struct cr_ctx *ctx)
>> +{
>> +
>> +	if (ctx->file)
>> +		fput(ctx->file);
>> +	if (ctx->vfsroot)
>> +		path_put(ctx->vfsroot);
>> +
>> +	free_pages((unsigned long) ctx->tbuf, CR_TBUF_ORDER);
>> +	free_pages((unsigned long) ctx->hbuf, CR_HBUF_ORDER);
>> +
>> +	kfree(ctx);
>> +}
>> +
>> +struct cr_ctx *cr_ctx_alloc(pid_t pid, struct file *file, unsigned long flags)
>> +{
>> +	struct cr_ctx *ctx;
>> +
>> +	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
>> +	if (!ctx)
>> +		return NULL;
>> +
>> +	ctx->tbuf = (void *) __get_free_pages(GFP_KERNEL, CR_TBUF_ORDER);
>> +	ctx->hbuf = (void *) __get_free_pages(GFP_KERNEL, CR_HBUF_ORDER);
>> +	if (!ctx->tbuf || !ctx->hbuf)
>> +		goto nomem;
>> +
>> +	ctx->pid = pid;
>> +	ctx->flags = flags;
>> +
>> +	ctx->file = file;
>> +	get_file(file);
>> +
>> +	/* assume checkpointer is in container's root vfs */
> 
> I'm a bit puzzled by this assumption. I would say: either this is a
> self-checkpoint (only current process), or this is a container checkpoint. In
> the latter case, I expect that in the general case the checkpointer lives
> outside the container (and the interface of sys_checkpoint() below confirms
> this), so it's root fs is probably not the container's one.
> 
> Does it differ from what you're planning?

You are correct. We lack infrastructure for what I'd call "container-object",
and the patchset does not yet tackle a container and multiple tasks, so this
is an interim solution. Will add a FIXME comment.

Thanks,

Oren.


  parent reply	other threads:[~2008-08-24  6:03 UTC|newest]

Thread overview: 107+ 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
     [not found]   ` <Pine.LNX.4.64.0808202302510.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21  5:17     ` Oren Laadan
2008-08-22 19:32     ` Dave Hansen
2008-08-22 19:32       ` Dave Hansen
2008-08-22 20:11       ` Dave Hansen
2008-08-22 20:11       ` Dave Hansen
2008-08-22 21:20       ` Oren Laadan
2008-08-22 21:20       ` Oren Laadan
2008-08-21  3:04 ` [RFC v2][PATCH 3/9] x86 support for checkpoint/restart Oren Laadan
     [not found]   ` <Pine.LNX.4.64.0808202304180.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-22 20:17     ` Dave Hansen
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
     [not found]     ` <20080821073020.GA28386-X9Un+BFzKDI@public.gmane.org>
2008-08-21  8:01       ` Justin P. Mattock
2008-08-21 10:28       ` Balbir Singh
2008-08-21  8:01     ` Justin P. Mattock
2008-08-21 10:28     ` Balbir Singh
     [not found]       ` <48AD433E.7010905-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-08-21 11:59         ` Ingo Molnar
2008-08-21 11:59       ` Ingo Molnar
     [not found]   ` <Pine.LNX.4.64.0808202304490.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21  7:30     ` Ingo Molnar
2008-08-21  9:53     ` Louis Rilling
2008-08-22 20:37     ` Dave Hansen
2008-08-21  9:53   ` Louis Rilling
2008-08-22 21:21     ` Oren Laadan
     [not found]     ` <20080821095316.GH581-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2008-08-22 21:21       ` Oren Laadan
2008-08-22 20:37   ` Dave Hansen
2008-08-24  5:40     ` Oren Laadan
2008-08-24  5:40     ` Oren Laadan
2008-08-26 16:33       ` Dave Hansen
2008-08-27  0:14         ` Oren Laadan
     [not found]           ` <48B49C61.1040003-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-27 15:41             ` Dave Hansen
2008-08-27 15:41           ` Dave Hansen
2008-08-27 15:57             ` Louis Rilling
     [not found]               ` <20080827155725.GD14473-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2008-08-27 16:12                 ` Dave Hansen
2008-08-27 16:12               ` Dave Hansen
2008-08-27 16:19                 ` Jeremy Fitzhardinge
2008-08-27 16:19                 ` Jeremy Fitzhardinge
2008-08-27 15:57             ` Louis Rilling
2008-08-27 20:34             ` Serge E. Hallyn
2008-08-27 20:34             ` Serge E. Hallyn
2008-08-27 20:38               ` Dave Hansen
2008-08-27 20:48                 ` Serge E. Hallyn
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  7:16                     ` Oren Laadan
2008-08-31 17:34                       ` Cedric Le Goater
2008-09-03 11:43                         ` [Devel] " Andrey Mirkin
     [not found]                           ` <200809031543.24001.amirkin-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2008-09-03 12:15                             ` Cedric Le Goater
2008-09-03 12:15                           ` Cedric Le Goater
     [not found]                             ` <48BE7FDF.3080202-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-09-03 13:29                               ` Andrey Mirkin
2008-09-03 13:29                             ` Andrey Mirkin
     [not found]                         ` <48BAD637.2050505-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-09-03 11:43                           ` Andrey Mirkin
     [not found]                       ` <48BA454F.7050308-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-31 17:34                         ` Cedric Le Goater
2008-09-02 15:32                         ` Serge E. Hallyn
2008-09-02 15:32                       ` Serge E. Hallyn
     [not found]                   ` <20080827204853.GA4189-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-27 20:56                     ` Dave Hansen
     [not found]               ` <20080827203427.GA1158-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-27 20:38                 ` Dave Hansen
2008-08-27  0:14         ` Oren Laadan
     [not found]       ` <48B0F449.2000006-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-26 16:33         ` Dave Hansen
2008-08-21  3:05 ` [RFC v2][PATCH 5/9] Memory managemnet - restore state Oren Laadan
     [not found]   ` <Pine.LNX.4.64.0808202305210.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21 10:07     ` Louis Rilling
2008-08-21 10:07   ` Louis Rilling
2008-08-21  3:06 ` [RFC v2][PATCH 6/9] Checkpoint/restart: initial documentation Oren Laadan
     [not found] ` <Pine.LNX.4.64.0808202251500.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21  3:03   ` [RFC v2][PATCH 1/9] Create trivial sys_checkpoint/sys_restart syscalls Oren Laadan
2008-08-21  3:04   ` [RFC v2][PATCH 2/9] General infrastructure for checkpoint restart Oren Laadan
2008-08-21  3:04     ` Oren Laadan
2008-08-21  9:35     ` Louis Rilling
     [not found]       ` <20080821093529.GG581-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2008-08-24  5:58         ` Oren Laadan
2008-08-24  5:58       ` Oren Laadan [this message]
     [not found]     ` <Pine.LNX.4.64.0808202303460.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21  9:35       ` Louis Rilling
2008-08-22 20:01       ` Dave Hansen
2008-08-22 20:01     ` Dave Hansen
2008-08-25  2:47       ` Oren Laadan
2008-08-25  2:47       ` Oren Laadan
     [not found]         ` <48B21D3C.8090601-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-26 16:42           ` Dave Hansen
2008-08-26 16:42         ` Dave Hansen
2008-08-27  0:38           ` Oren Laadan
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-21  3:05   ` [RFC v2][PATCH 4/9] Memory management - dump state Oren Laadan
2008-08-21  3:05   ` [RFC v2][PATCH 5/9] Memory managemnet - restore state Oren Laadan
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  3:06     ` Oren Laadan
     [not found]     ` <Pine.LNX.4.64.0808202306170.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21 10:40       ` Louis Rilling
2008-08-21 10:40     ` Louis Rilling
2008-08-26 17:01       ` Dave Hansen
2008-08-27  8:26         ` Louis Rilling
2008-08-27  8:26         ` Louis Rilling
     [not found]       ` <20080821104016.GJ581-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2008-08-26 17:01         ` Dave Hansen
2008-08-21  3:07   ` [RFC v2][PATCH 8/9] File descriprtors - dump state Oren Laadan
2008-08-21  3:07     ` Oren Laadan
2008-08-21 11:06     ` Louis Rilling
     [not found]       ` <20080821110614.GK581-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2008-08-25  3:28         ` Oren Laadan
2008-08-25  3:28       ` Oren Laadan
2008-08-25 10:30         ` Louis Rilling
     [not found]         ` <48B226CE.2060700-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-25 10:30           ` Louis Rilling
     [not found]     ` <Pine.LNX.4.64.0808202306530.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21 11:06       ` Louis Rilling
2008-08-21  3:07   ` [RFC v2][PATCH 9/9] File descriprtors (restore) Oren Laadan
2008-08-21  3:07     ` Oren Laadan
2008-08-21  5:26     ` Oren Laadan
     [not found]     ` <Pine.LNX.4.64.0808202307270.17436-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2008-08-21  5:26       ` Oren Laadan
2008-08-21  5:15   ` [RFC v2][PATCH 1/9] kernel based checkpoint-restart Oren Laadan
2008-08-21  5:15 ` 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=48B0F88C.2090403@cs.columbia.edu \
    --to=orenl@cs.columbia.edu \
    --cc=Louis.Rilling@kerlabs.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 \
    /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.