All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Cedric Le Goater <clg@fr.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>, Greg Kurz <gkurz@fr.ibm.com>,
	linux-kernel@vger.kernel.org, containers@lists.osdl.org,
	akpm@linux-foundation.org, xemul@openvz.org
Subject: Re: [PATCH] Introduce ActivePid: in /proc/self/status (v2, was	Vpid:)
Date: Thu, 16 Jun 2011 08:22:13 -0700	[thread overview]
Message-ID: <m1fwn9by3e.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <4DFA126D.9060102@fr.ibm.com> (Cedric Le Goater's message of "Thu, 16 Jun 2011 16:25:49 +0200")

Cedric Le Goater <clg@fr.ibm.com> writes:

> On 06/16/2011 03:06 PM, Oleg Nesterov wrote:
>> On 06/16, Cedric Le Goater wrote:
>>>
>>> We have a case where a task in a parent pid namespace needs to kill
>>> another task in a sub pid namespace only knowing its internal pid.
>>> the latter has been communicated to the parent task through a file or
>>> a unix socket.
>> 
>> OK, thanks, this partly answers my question... But if they communicate
>> anyway, it is not clear why the signal is needed.
>
> Well, user space always finds ways to challenge the kernel.
>
> Our case is related to HPC. The batch manager runs jobs inside lxc 
> containers (using namespaces) and signals are sent to the application 
> for different reasons. First, to cleanly exit but also for other more 
> specific actions related to the cluster interconnects. 

In that case I really recommend unix domain sockets.  You likely
won't need a kernel upgrade to make use of those and their pid
translation ability.

>>> a new kill syscall could be the solution:
>>>
>>>     int pidns_kill(pid_t init_pid, pid_t some_pid);
>>>
>>> where 'init_pid' identifies the namespace and 'some_pid' identifies
>>> a task in this namespace. this is very specific but why not.
>> 
>> Yes, I also thought about this. Should be trivial.
>> 
>> Or int sys_tell_me_its_pid(pid_t init_pid, pid_t some_pid).
>
> why not. it's even better because more general.

If we get as far as a new system call (and I don't think any of this
needs a new system call) we really should use a namespace file
descriptor to identify the pid namespace not a pid.

>> Just in case.... This is hack, yes, but in fact you do not need the
>> kernel changes to send a signal inside the namespace. You could
>> ptrace sub_init, and execute the necessary code "inside" the namespace.
>
> hmm, I look at that.

Looking at the ptrace interactions are definitely worthwhile.

I remember there were a few very weird things with pids when ptracing
a process in another pid namespace.  It may be that ActivePid is enough
to allow the tracer to figure out the confusing information it is
getting.

I would be surprised if using ptrace to send signals is how you
want to do things.  It works, and it is a great argument from
a security perspective on allowing things that we already allow.
Using ptrace to run system calls was cumbersome and not easily
portable across architectures last time I looked.

Eric

  reply	other threads:[~2011-06-16 15:22 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-15 14:55 [PATCH] Introduce ActivePid: in /proc/self/status (v2, was Vpid:) Greg Kurz
2011-06-15 18:46 ` Oleg Nesterov
2011-06-15 19:08   ` Eric W. Biederman
2011-06-16 11:01   ` Greg Kurz
2011-06-16 12:35     ` Louis Rilling
2011-06-16 13:00       ` Greg Kurz
2011-06-16 13:18         ` Oleg Nesterov
2011-06-16 13:25         ` Louis Rilling
2011-06-16 14:51           ` Oleg Nesterov
2011-06-16 15:08             ` Louis Rilling
2011-06-16 15:01           ` Greg Kurz
2011-06-16 15:27             ` Louis Rilling
2011-06-16 12:42     ` Oleg Nesterov
2011-06-15 19:03 ` Oleg Nesterov
2011-06-16 11:19   ` Greg Kurz
2011-06-16 12:25     ` Cedric Le Goater
2011-06-16 13:06       ` Oleg Nesterov
2011-06-16 14:25         ` Cedric Le Goater
2011-06-16 15:22           ` Eric W. Biederman [this message]
2011-06-16 16:22             ` Oleg Nesterov
2011-06-16 15:07       ` Eric W. Biederman
2011-06-16 15:33         ` Greg Kurz
2011-06-16 16:12           ` Oleg Nesterov
2011-06-16 12:52     ` Oleg Nesterov
2011-06-16 17:54 ` Bryan Donlan
2011-06-20 11:45   ` Greg Kurz
2011-06-20 17:37     ` Bryan Donlan
2011-06-20 22:44       ` Eric W. Biederman
2011-06-22 15:29         ` Greg Kurz
2011-06-23  0:39           ` Eric W. Biederman
2011-06-23 13:43             ` Greg Kurz
2011-06-23 14:37               ` Serge Hallyn
2011-06-22 15:00       ` Greg Kurz
2011-06-22 16:56         ` Bryan Donlan

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=m1fwn9by3e.fsf@fess.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=akpm@linux-foundation.org \
    --cc=clg@fr.ibm.com \
    --cc=containers@lists.osdl.org \
    --cc=gkurz@fr.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=xemul@openvz.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.