From: Pavel Emelyanov <xemul@parallels.com>
To: Tejun Heo <tj@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Cyrill Gorcunov <gorcunov@gmail.com>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Vasiliy Kulikov <segoon@openwall.com>,
"containers@lists.osdl.org" <containers@lists.osdl.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
Nathan Lynch <ntl@pobox.com>, Oren Laadan <orenl@cs.columbia.edu>,
Daniel Lezcano <dlezcano@fr.ibm.com>,
Glauber Costa <glommer@parallels.com>,
James Bottomley <jbottomley@parallels.com>,
Alexey Dobriyan <adobriyan@gmail.com>,
Al Viro <viro@ZenIV.linux.org.uk>
Subject: Re: [patch 2/2] fs, proc: Introduce the /proc/<pid>/map_files/ directory v6
Date: Thu, 01 Sep 2011 16:13:54 +0400 [thread overview]
Message-ID: <4E5F7702.2070808@parallels.com> (raw)
In-Reply-To: <20110901115006.GB2752@htj.dyndns.org>
On 09/01/2011 03:50 PM, Tejun Heo wrote:
> Hello, Andrew, Pavel.
>
> On Thu, Sep 01, 2011 at 11:58:29AM +0400, Pavel Emelyanov wrote:
>>> What additional kernel patches are required to bring that effort to a
>>> usable state and where are those patches?
>>
>> * The one you've already accepted with ->statfs for pipefs.
>> * PTRACE_SEIZE set from Tejun (RFC was sent some time earlier)
>
> This one is already in mainline. It's necessary to make the existing
> debuggers (strace and gdb) interact properly with job control.
>
>> * CLONE_USEPID flag for the clone() syscall (Cyrill will re-send a bit later)
>> * The binfmt handler for images (I've sent it earlier, but there's a discussion
>> happening over it. We can do restore without one, but it will improve the
>> situation significantly)
>
> I still can't see much point in binfmt handler. The kernel pieces
> should be pretty small no matter how this one gets resolved.
Because with the handler restore process looks very natural and simple - each
task does the following steps
1. restore task resources (open files, set IDs, restore connections, wire back timers, etc.)
2. call execve() to jump into new memory+registers context which is
a. unmap all the user memory
b. map required mappings
c. populate them with data
d. restore registers
e. restore IP
Note, that steps a through e are what execve() is designed for from day 1. Also note,
that when talking about the binary handler I do not insist in having my own one - it's
perfectly fine with me if we can make the ELF handler do the job (and I'm going to investigate
this ability soon).
With SEIZE it looks worse (maybe I'm seeing it wrong, then correct me please):
1. restore task resources
2. freeze
3. some foreigner attaches a parasite to the frozen task and the parasite
should do steps a through e from the previous list to restore mem+regs context,
but when doing steps a and b it should care about not killing himself from the
target task context
This SEIZE-d restoring looks very complex and not efficient to me.
Am I wrong at some point?
> Thanks.
>
next prev parent reply other threads:[~2011-09-01 12:13 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-31 7:58 [patch 0/2] Introduce /proc/pid/map_files v6 Cyrill Gorcunov
2011-08-31 7:58 ` [patch 1/2] fs, proc: Make proc_get_link to use dentry instead of inode Cyrill Gorcunov
2011-08-31 7:58 ` [patch 2/2] fs, proc: Introduce the /proc/<pid>/map_files/ directory v6 Cyrill Gorcunov
2011-08-31 9:06 ` Vasiliy Kulikov
2011-08-31 10:12 ` Cyrill Gorcunov
2011-08-31 11:26 ` Cyrill Gorcunov
2011-08-31 14:04 ` Kirill A. Shutemov
2011-08-31 14:09 ` Cyrill Gorcunov
2011-08-31 14:26 ` Cyrill Gorcunov
2011-08-31 22:10 ` Andrew Morton
2011-09-01 3:07 ` Kyle Moffett
2011-09-01 3:07 ` Kyle Moffett
2011-09-01 7:58 ` Pavel Emelyanov
2011-09-01 11:50 ` Tejun Heo
2011-09-01 12:13 ` Pavel Emelyanov [this message]
2011-09-01 17:13 ` Tejun Heo
2011-09-02 19:15 ` Matt Helsley
2011-09-02 0:09 ` Matt Helsley
2011-09-01 8:05 ` Cyrill Gorcunov
2011-09-02 16:37 ` Vasiliy Kulikov
2011-09-02 16:37 ` [kernel-hardening] " Vasiliy Kulikov
2011-09-05 18:53 ` Vasiliy Kulikov
2011-09-05 18:53 ` [kernel-hardening] " Vasiliy Kulikov
2011-09-05 19:20 ` Cyrill Gorcunov
2011-09-05 19:20 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-05 19:49 ` Vasiliy Kulikov
2011-09-05 19:49 ` [kernel-hardening] " Vasiliy Kulikov
2011-09-05 20:36 ` Cyrill Gorcunov
2011-09-05 20:36 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-06 10:15 ` Vasiliy Kulikov
2011-09-06 10:15 ` [kernel-hardening] " Vasiliy Kulikov
2011-09-06 16:51 ` Tejun Heo
2011-09-06 16:51 ` [kernel-hardening] " Tejun Heo
2011-09-06 17:29 ` Vasiliy Kulikov
2011-09-06 17:29 ` [kernel-hardening] " Vasiliy Kulikov
2011-09-06 17:33 ` Tejun Heo
2011-09-06 17:33 ` [kernel-hardening] " Tejun Heo
2011-09-06 18:15 ` Cyrill Gorcunov
2011-09-06 18:15 ` [kernel-hardening] " Cyrill Gorcunov
[not found] ` <20110906173341.GM18425-9pTldWuhBndy/B6EtB590w@public.gmane.org>
2011-09-07 11:23 ` Vasiliy Kulikov
2011-09-07 11:23 ` [kernel-hardening] " Vasiliy Kulikov
2011-09-07 21:53 ` Cyrill Gorcunov
2011-09-07 21:53 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-07 22:13 ` Andrew Morton
2011-09-07 22:13 ` Andrew Morton
2011-09-07 22:13 ` [kernel-hardening] " Andrew Morton
2011-09-07 22:42 ` Cyrill Gorcunov
2011-09-07 22:42 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-07 22:53 ` Andrew Morton
2011-09-07 22:53 ` Andrew Morton
2011-09-07 22:53 ` [kernel-hardening] " Andrew Morton
2011-09-08 5:48 ` Cyrill Gorcunov
2011-09-08 5:48 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-08 5:50 ` Cyrill Gorcunov
2011-09-08 5:50 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-08 6:04 ` Cyrill Gorcunov
2011-09-08 6:04 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-08 23:52 ` Andrew Morton
2011-09-08 23:52 ` Andrew Morton
2011-09-08 23:52 ` [kernel-hardening] " Andrew Morton
2011-09-09 0:24 ` Pavel Emelyanov
2011-09-09 0:24 ` [kernel-hardening] " Pavel Emelyanov
2011-09-09 5:48 ` Cyrill Gorcunov
2011-09-09 5:48 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-09 6:00 ` Andrew Morton
2011-09-09 6:00 ` [kernel-hardening] " Andrew Morton
2011-09-09 6:22 ` Cyrill Gorcunov
2011-09-09 6:22 ` [kernel-hardening] " Cyrill Gorcunov
2011-09-10 13:21 ` Vasiliy Kulikov
2011-09-10 13:49 ` Cyrill Gorcunov
2011-09-01 10:46 ` Cyrill Gorcunov
2011-09-01 22:49 ` Andrew Morton
2011-09-01 23:04 ` Tejun Heo
2011-09-02 5:54 ` Cyrill Gorcunov
2011-09-02 5:53 ` Cyrill Gorcunov
2011-08-31 22:50 ` Andrew Morton
2011-09-02 1:54 ` Nicholas Miell
2011-09-02 1:58 ` Tejun Heo
2011-09-02 2:04 ` Nicholas Miell
2011-09-02 2:29 ` Tejun Heo
2011-09-02 8:07 ` Kirill A. Shutemov
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=4E5F7702.2070808@parallels.com \
--to=xemul@parallels.com \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=containers@lists.osdl.org \
--cc=dlezcano@fr.ibm.com \
--cc=glommer@parallels.com \
--cc=gorcunov@gmail.com \
--cc=jbottomley@parallels.com \
--cc=kirill@shutemov.name \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ntl@pobox.com \
--cc=orenl@cs.columbia.edu \
--cc=segoon@openwall.com \
--cc=tj@kernel.org \
--cc=viro@ZenIV.linux.org.uk \
/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.