lkml.org 
[lkml]   [2011]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [RFC][PATCH] cgroup: Fix cgroup_subsys::exit callback
    On Mon, Feb 7, 2011 at 8:10 AM, Peter Zijlstra <peterz@infradead.org> wrote:
    >
    > Make the ::exit method act like ::attach, it is after all very nearly
    > the same thing.

    The major difference between attach and exit is that the former is
    only triggered in response to user cgroup-management action, whereas
    the latter is triggered whenever a task exits, even if cgroups aren't
    set up.


    >  void cgroup_exit(struct task_struct *tsk, int run_callbacks)
    >  {
    > -       int i;
    >        struct css_set *cg;
    > +       int i;
    >
    > -       if (run_callbacks && need_forkexit_callback) {
    > -               /*
    > -                * modular subsystems can't use callbacks, so no need to lock
    > -                * the subsys array
    > -                */
    > -               for (i = 0; i < CGROUP_BUILTIN_SUBSYS_COUNT; i++) {
    > -                       struct cgroup_subsys *ss = subsys[i];
    > -                       if (ss->exit)
    > -                               ss->exit(ss, tsk);
    > -               }
    > -       }
    > +       mutex_lock(&cgroup_mutex);

    NACK - cgroup_mutex is way too heavy to take in the task exit path.
    We'll need to find some other way to fix this if it's really needed.
    task->alloc_lock is also normally a valid thing to synchronize against
    cgroup moves, but I'd have to look at the exit path to see if it's
    still valid there.

    Paul
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-02-07 20:31    [W:2.817 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site