lkml.org 
[lkml]   [2010]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] procfs: Do not release pid_ns->proc_mnt too early
    On 06/18, Louis Rilling wrote:
    >
    > On 17/06/10 23:36 +0200, Oleg Nesterov wrote:
    > > On 06/17, Eric W. Biederman wrote:
    > > >
    > > > The task->children isn't changed until __unhash_process() which runs
    > > > after flush_proc_task().
    > >
    > > Yes. But this is only the current implementation detail.
    > > It would be nice to cleanup the code so that EXIT_DEAD tasks are
    > > never sit in ->children list.
    > >
    > > > So we should be able to come up with
    > > > a variant of do_wait() that zap_pid_ns_processes can use that does
    > > > what we need.
    > >
    > > See above...
    > >
    > > Even if we modify do_wait() or add the new variant, how the caller
    > > can wait for EXIT_DEAD tasks? I don't think we want to modify
    > > release_task() to do __wake_up_parent() or something similar.
    >
    > Indeed, I was thinking about calling __wake_up_parent() from release_task()
    > once parent->children becomes empty.
    >
    > Not sure about the performance impact though. Maybe some WAIT_NO_CHILDREN flag
    > in parent->signal could limit it. But if EXIT_DEAD children are removed from
    > ->children before release_task(), I'm afraid that this becomes impossible.

    Thinking more, even the current do_wait() from zap_pid_ns_processes()
    is not really good. Suppose that some none-init thread is ptraced, then
    zap_pid_ns_processes() will hange until the tracer does do_wait() or
    exits.

    Oleg.



    \
     
     \ /
      Last update: 2010-06-18 19:39    [W:0.025 / U:0.172 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site