All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kirill Korotaev <dev@sw.ru>
To: Pierre Peiffer <pierre.peiffer@bull.net>
Cc: Alexey Dobriyan <adobriyan@gmail.com>,
	containers@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2.6.24-rc8-mm1 09/15] (RFC) IPC: new kernel API to change an ID
Date: Thu, 31 Jan 2008 12:54:10 +0300	[thread overview]
Message-ID: <47A19AC2.7040709@sw.ru> (raw)
In-Reply-To: <47A18E47.5050206@bull.net>

Why user space can need this API? for checkpointing only?
Then I would not consider it for inclusion until it is clear how to implement checkpointing.

As for me personally - I'm against exporting such APIs, since they are not needed in real-life user space applications and maintaining it forever for compatibility doesn't worth it.
Also such APIs allow creation of non-GPL checkpointing in user-space, which can be of concern as well.

Kirill


Pierre Peiffer wrote:
> Hi again,
> 
> 	Thinking more about this, I think I must clarify why I choose this way.
> In fact, the idea of these patches is to provide the missing user APIs (or
> extend the existing ones) that allow to set or update _all_ properties of all
> IPCs, as needed in the case of the checkpoint/restart of an application (the
> current user API does not allow to specify an ID for a created IPC, for
> example). And this, without changing the existing API of course.
> 
> 	And msgget(), semget() and shmget() does not have any parameter we can use to
> specify an ID.
> 	That's why I've decided to not change these routines and add a new control
> command, IP_SETID, with which we can can change the ID of an IPC. (that looks to
> me more straightforward and logical)
> 
> 	Now, this patch is, in fact, only a preparation for the patch 10/15 which
> really complete the user API by adding this IPC_SETID command.
> 
> (... continuing below ...)
> 
> Alexey Dobriyan wrote:
>> On Tue, Jan 29, 2008 at 05:02:38PM +0100, pierre.peiffer@bull.net wrote:
>>> This patch provides three new API to change the ID of an existing
>>> System V IPCs.
>>>
>>> These APIs are:
>>> 	long msg_chid(struct ipc_namespace *ns, int id, int newid);
>>> 	long sem_chid(struct ipc_namespace *ns, int id, int newid);
>>> 	long shm_chid(struct ipc_namespace *ns, int id, int newid);
>>>
>>> They return 0 or an error code in case of failure.
>>>
>>> They may be useful for setting a specific ID for an IPC when preparing
>>> a restart operation.
>>>
>>> To be successful, the following rules must be respected:
>>> - the IPC exists (of course...)
>>> - the new ID must satisfy the ID computation rule.
>>> - the entry in the idr corresponding to the new ID must be free.
>>>  ipc/util.c          |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
>>>  ipc/util.h          |    1 +
>>>  8 files changed, 197 insertions(+)
>> For the record, OpenVZ uses "create with predefined ID" method which
>> leads to less code. For example, change at the end is all we want from
>> ipc/util.c .
> 
> And in fact, you do that from kernel space, you don't have the constraint to fit
> the existing user API.
> Again, this patch, even if it presents a new kernel API, is in fact a
> preparation for the next patch which introduces a new user API.
> 
> Do you think that this could fit your need ?
> 

  reply	other threads:[~2008-01-31  9:55 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
2008-01-29 16:02 ` pierre.peiffer-6ktuUTfB/bM
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
2008-01-31  8:32   ` Nadia Derbey
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
     [not found]     ` <47A187AE.1000809-6ktuUTfB/bM@public.gmane.org>
2008-01-31 10:18       ` Pierre Peiffer
     [not found]   ` <20080129161758.154775218-6ktuUTfB/bM@public.gmane.org>
2008-01-31  8:32     ` 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
2008-01-29 21:06   ` Alexey Dobriyan
2008-01-31  9:00     ` Pierre Peiffer
2008-01-31  9:54       ` Kirill Korotaev [this message]
     [not found]         ` <47A19AC2.7040709-3ImXcnM4P+0@public.gmane.org>
2008-01-31 11:57           ` Pierre Peiffer
2008-01-31 11:57             ` 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
2008-02-04 15:00                       ` Daniel Lezcano
     [not found]                         ` <47A72891.4000404-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-02-04 15:16                           ` Pavel Emelyanov
2008-02-04 15:16                         ` Pavel Emelyanov
     [not found]                       ` <47A71BDF.5000801-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-02-04 15:00                         ` Daniel Lezcano
     [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
     [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
     [not found]       ` <47A18E47.5050206-6ktuUTfB/bM@public.gmane.org>
2008-01-31  9:54         ` Kirill Korotaev
     [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
     [not found]   ` <20080129162000.454857358-6ktuUTfB/bM@public.gmane.org>
2008-01-29 21:06     ` Alexey Dobriyan
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
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
     [not found]   ` <20080129162131.743970100-6ktuUTfB/bM@public.gmane.org>
2008-01-30 21:26     ` Serge E. Hallyn
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
2008-02-01 12:09         ` Pierre Peiffer
     [not found]         ` <20080131180125.GA5617-6s5zFf/epYL1ENwx4SLHqw@public.gmane.org>
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
2008-02-04 15:44   ` Benjamin Thery
     [not found]     ` <47A732E2.1000504-6ktuUTfB/bM@public.gmane.org>
2008-02-04 19:51       ` Pavel Machek
2008-02-04 19:51     ` Pavel Machek
     [not found]   ` <20080202182351.GC4456-+ZI9xUNit7I@public.gmane.org>
2008-02-04 13:52     ` Pierre Peiffer
2008-02-04 15:44     ` Benjamin Thery
     [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=47A19AC2.7040709@sw.ru \
    --to=dev@sw.ru \
    --cc=adobriyan@gmail.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre.peiffer@bull.net \
    /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.