All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Emelyanov <xemul@openvz.org>
To: Daniel Lezcano <dlezcano@fr.ibm.com>
Cc: Pavel Emelyanov <xemul@openvz.org>, Kirill Korotaev <dev@sw.ru>,
	containers@lists.linux-foundation.org,
	Cedric Le Goater <clg@fr.ibm.com>,
	linux-kernel@vger.kernel.org,
	Alexey Dobriyan <adobriyan@gmail.com>
Subject: Re: [Devel] Re: [PATCH 2.6.24-rc8-mm1 09/15] (RFC) IPC: new kernel API to change an ID
Date: Mon, 04 Feb 2008 18:16:43 +0300	[thread overview]
Message-ID: <47A72C5B.4030307@openvz.org> (raw)
In-Reply-To: <47A72891.4000404@fr.ibm.com>

Daniel Lezcano wrote:
> Pavel Emelyanov wrote:
>> Kirill Korotaev wrote:
>>> Cedric Le Goater wrote:
>>>> Hello Kirill !
>>>>
>>>> Kirill Korotaev wrote:
>>>>> Pierre,
>>>>>
>>>>> my point is that after you've added interface "set IPCID", you'll need
>>>>> more and more for checkpointing:
>>>>> - "create/setup conntrack" (otherwise connections get dropped),
>>>>> - "set task start time" (needed for Oracle checkpointing BTW),
>>>>> - "set some statistics counters (e.g. networking or taskstats)"
>>>>> - "restore inotify"
>>>>> and so on and so forth.
>>>> right. we know that we will have to handle a lot of these
>>>> and more and we will need an API for it :) so how should we handle it ?
>>>> through a dedicated syscall that would be able to checkpoint and/or
>>>> restart a process, an ipc object, an ipc namespace, a full container ?
>>>> will it take a fd or a big binary blob ?  
>>>> I personally really liked Pavel idea's of filesystem. but we dropped the
>>>> thread.
>>> Imho having a file system interface means having all its problems.
>>> Imagine you have some information about tasks exported with a file system interface.
>>> Obviously to collect the information you have to hold some spinlock like tasklist_lock or similar.
>>> Obviously, you have to drop the lock between sys_read() syscalls.
>>> So interface gets much more complicated - you have to rescan the objects and somehow find the place where
>>> you stopped previous read. Or you have to to force reader to read everything at once.
>> To remember the place when we stopped previous read we have a "pos" counter
>> on the struct file.
>>
>> Actually, tar utility, that I propose to perform the most simple migration
>> reads the directory contents with 4Kb buffer - that's enough for ~500 tasks.
>>
>> Besides, is this a real problem for a frozen container?
> 
> I like the idea of a C/R filesystem. Does it implies a specific user 
> space program to orchestrate the checkpoint/restart of the different 
> subsystems ? I mean the checkpoint is easy but what about the restart ? 

I though about smth like "writing to this fs causes restore process".

> We must ensure, for example to restore a process before restoring the fd 
> associated to it, or restore a deleted file before restoring the fd 

This is achieved by tar automatically - it extracts files in the order
of archiving. Thus is we provide them in correct order we'll get them
in correct one as well.

> opened to it, no ?
> 
> 
> 
> 
> 
> 


  reply	other threads:[~2008-02-04 15:17 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-29 16:02 [PATCH 2.6.24-rc8-mm1 00/15] IPC: code rewrite + new functionalities pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 01/15] IPC/semaphores: code factorisation pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02 ` pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 02/15] IPC/shared memory: introduce shmctl_down pierre.peiffer
2008-01-29 16:02 ` pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 03/15] IPC/message queues: introduce msgctl_down pierre.peiffer
2008-01-29 16:02 ` pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 04/15] IPC/semaphores: move the rwmutex handling inside semctl_down pierre.peiffer
2008-01-29 16:02 ` pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 05/15] IPC/semaphores: remove one unused parameter from semctl_down() pierre.peiffer
     [not found]   ` <20080129161758.154775218-6ktuUTfB/bM@public.gmane.org>
2008-01-31  8:32     ` Nadia Derbey
2008-01-31  8:32   ` Nadia Derbey
     [not found]     ` <47A187AE.1000809-6ktuUTfB/bM@public.gmane.org>
2008-01-31 10:18       ` Pierre Peiffer
2008-01-31 10:18     ` Pierre Peiffer
     [not found]       ` <47A1A076.4060108-6ktuUTfB/bM@public.gmane.org>
2008-01-31 11:30         ` Nadia Derbey
2008-01-31 11:30       ` Nadia Derbey
2008-01-29 16:02 ` pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 06/15] IPC: get rid of the use *_setbuf structure pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 07/15] IPC: introduce ipc_update_perm() pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 08/15] IPC: consolidate all xxxctl_down() functions pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 09/15] (RFC) IPC: new kernel API to change an ID pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
     [not found]   ` <20080129162000.454857358-6ktuUTfB/bM@public.gmane.org>
2008-01-29 21:06     ` Alexey Dobriyan
2008-01-29 21:06   ` Alexey Dobriyan
     [not found]     ` <20080129210656.GB1990-QDJVlCTZ4KWTKS93B3g+7KFoa47nwP16@public.gmane.org>
2008-01-30  9:52       ` Pierre Peiffer
2008-01-30  9:52         ` Pierre Peiffer
2008-01-31  9:00       ` Pierre Peiffer
2008-01-31  9:00     ` Pierre Peiffer
     [not found]       ` <47A18E47.5050206-6ktuUTfB/bM@public.gmane.org>
2008-01-31  9:54         ` Kirill Korotaev
2008-01-31  9:54       ` Kirill Korotaev
     [not found]         ` <47A19AC2.7040709-3ImXcnM4P+0@public.gmane.org>
2008-01-31 11:57           ` Pierre Peiffer
2008-01-31 11:57             ` Pierre Peiffer
     [not found]             ` <47A1B78C.7050405-6ktuUTfB/bM@public.gmane.org>
2008-01-31 13:11               ` Kirill Korotaev
2008-02-05  9:51               ` Oren Laadan
2008-02-05  9:51                 ` Oren Laadan
2008-02-05 18:00                 ` Dave Hansen
     [not found]                 ` <47A83194.8060808-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-02-05 18:00                   ` Dave Hansen
2008-02-05 18:42                   ` Serge E. Hallyn
2008-02-05 18:42                 ` Serge E. Hallyn
     [not found]                   ` <20080205184234.GA28923-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-02-06  2:07                     ` Oren Laadan
2008-02-06  2:07                       ` Oren Laadan
     [not found]                       ` <47A91652.4090506-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-02-06  5:00                         ` Serge E. Hallyn
2008-02-06  5:00                       ` Serge E. Hallyn
2008-02-08 10:12                     ` Pierre Peiffer
2008-02-08 10:12                   ` Pierre Peiffer
2008-01-31 13:11             ` Kirill Korotaev
2008-01-31 16:10               ` Cedric Le Goater
     [not found]                 ` <47A1F2DB.7080600-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-02-04 13:41                   ` Kirill Korotaev
2008-02-04 13:41                     ` Kirill Korotaev
2008-02-04 14:06                     ` [Devel] " Pavel Emelyanov
     [not found]                       ` <47A71BDF.5000801-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-02-04 15:00                         ` Daniel Lezcano
2008-02-04 15:00                       ` Daniel Lezcano
2008-02-04 15:16                         ` Pavel Emelyanov [this message]
     [not found]                         ` <47A72891.4000404-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-02-04 15:16                           ` Pavel Emelyanov
     [not found]                     ` <47A71606.5030201-3ImXcnM4P+0@public.gmane.org>
2008-02-04 14:06                       ` Pavel Emelyanov
     [not found]               ` <47A1C8FE.9010700-3ImXcnM4P+0@public.gmane.org>
2008-01-31 16:10                 ` Cedric Le Goater
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 10/15] (RFC) IPC: new IPC_SETID command to modify " pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 11/15] (RFC) IPC: new IPC_SETALL command to modify all settings pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 12/15] (RFC) IPC/semaphores: make use of RCU to free the sem_undo_list pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
     [not found]   ` <20080129162131.743970100-6ktuUTfB/bM@public.gmane.org>
2008-01-30 21:26     ` Serge E. Hallyn
2008-01-30 21:26   ` Serge E. Hallyn
     [not found]     ` <20080130212650.GA8945-6s5zFf/epYLPQpwDFJZrxFMas7LaWZ9n@public.gmane.org>
2008-01-31  9:52       ` Pierre Peiffer
2008-01-31  9:52     ` Pierre Peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 13/15] (RFC) IPC/semaphores: per <pid> semundo file in procfs pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 14/15] (RFC) IPC/semaphores: prepare semundo code to work on another task than current pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-01-30 21:44   ` Serge E. Hallyn
2008-01-31  9:48     ` Pierre Peiffer
     [not found]       ` <47A19988.5030108-6ktuUTfB/bM@public.gmane.org>
2008-01-31 18:01         ` Serge E. Hallyn
2008-01-31 18:01       ` Serge E. Hallyn
     [not found]         ` <20080131180125.GA5617-6s5zFf/epYL1ENwx4SLHqw@public.gmane.org>
2008-02-01 12:09           ` Pierre Peiffer
2008-02-01 12:09         ` Pierre Peiffer
     [not found]     ` <20080130214430.GB8945-6s5zFf/epYLPQpwDFJZrxFMas7LaWZ9n@public.gmane.org>
2008-01-31  9:48       ` Pierre Peiffer
     [not found]   ` <20080129162232.843976550-6ktuUTfB/bM@public.gmane.org>
2008-01-30 21:44     ` Serge E. Hallyn
2008-01-29 16:02 ` [PATCH 2.6.24-rc8-mm1 15/15] (RFC) IPC/semaphores: add write() operation to semundo file in procfs pierre.peiffer-6ktuUTfB/bM
2008-01-29 16:02   ` pierre.peiffer
2008-02-02 18:23 ` [PATCH 2.6.24-rc8-mm1 00/15] IPC: code rewrite + new functionalities Pavel Machek
2008-02-04 13:52   ` Pierre Peiffer
     [not found]   ` <20080202182351.GC4456-+ZI9xUNit7I@public.gmane.org>
2008-02-04 13:52     ` Pierre Peiffer
2008-02-04 15:44     ` Benjamin Thery
2008-02-04 15:44   ` Benjamin Thery
2008-02-04 19:51     ` Pavel Machek
     [not found]     ` <47A732E2.1000504-6ktuUTfB/bM@public.gmane.org>
2008-02-04 19:51       ` Pavel Machek
     [not found] ` <20080129160229.612172683-6ktuUTfB/bM@public.gmane.org>
2008-02-02 18:23   ` Pavel Machek

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=47A72C5B.4030307@openvz.org \
    --to=xemul@openvz.org \
    --cc=adobriyan@gmail.com \
    --cc=clg@fr.ibm.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=dev@sw.ru \
    --cc=dlezcano@fr.ibm.com \
    --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.