lkml.org 
[lkml]   [2010]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/3] cgroups: Add an API to attach a task to current task's cgroup
    From: Sridhar Samudrala <samudrala.sridhar@gmail.com>

    Add a new kernel API to attach a task to current task's cgroup
    in all the active hierarchies.

    Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
    Reviewed-by: Paul Menage <menage@google.com>
    Acked-by: Li Zefan <lizf@cn.fujitsu.com>
    ---
    include/linux/cgroup.h | 1 +
    kernel/cgroup.c | 23 +++++++++++++++++++++++
    2 files changed, 24 insertions(+)

    Index: work/include/linux/cgroup.h
    ===================================================================
    --- work.orig/include/linux/cgroup.h
    +++ work/include/linux/cgroup.h
    @@ -570,6 +570,7 @@ struct task_struct *cgroup_iter_next(str
    void cgroup_iter_end(struct cgroup *cgrp, struct cgroup_iter *it);
    int cgroup_scan_tasks(struct cgroup_scanner *scan);
    int cgroup_attach_task(struct cgroup *, struct task_struct *);
    +int cgroup_attach_task_current_cg(struct task_struct *);

    /*
    * CSS ID is ID for cgroup_subsys_state structs under subsys. This only works
    Index: work/kernel/cgroup.c
    ===================================================================
    --- work.orig/kernel/cgroup.c
    +++ work/kernel/cgroup.c
    @@ -1788,6 +1788,29 @@ out:
    return retval;
    }

    +/**
    + * cgroup_attach_task_current_cg - attach task 'tsk' to current task's cgroup
    + * @tsk: the task to be attached
    + */
    +int cgroup_attach_task_current_cg(struct task_struct *tsk)
    +{
    + struct cgroupfs_root *root;
    + struct cgroup *cur_cg;
    + int retval = 0;
    +
    + cgroup_lock();
    + for_each_active_root(root) {
    + cur_cg = task_cgroup_from_root(current, root);
    + retval = cgroup_attach_task(cur_cg, tsk);
    + if (retval)
    + break;
    + }
    + cgroup_unlock();
    +
    + return retval;
    +}
    +EXPORT_SYMBOL_GPL(cgroup_attach_task_current_cg);
    +
    /*
    * Attach task with pid 'pid' to cgroup 'cgrp'. Call with cgroup_mutex
    * held. May take task_lock of task

    \
     
     \ /
      Last update: 2010-06-01 11:39    [W:0.079 / U:59.604 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site