lkml.org 
[lkml]   [2011]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 12/14] Keep number of running processes per-cgroup
    Date
    This relies on the fact that the scheduler classes keep the number
    of running processes internally in their entities.

    Signed-off-by: Glauber Costa <glommer@parallels.com>
    ---
    kernel/sched.c | 15 ++++++++++++++-
    1 files changed, 14 insertions(+), 1 deletions(-)

    diff --git a/kernel/sched.c b/kernel/sched.c
    index 6ef6e1b..d93cfd4 100644
    --- a/kernel/sched.c
    +++ b/kernel/sched.c
    @@ -9763,6 +9763,7 @@ int cpu_cgroup_proc_stat(struct cgroup *cgrp, struct cftype *cft,
    struct timespec boottime;
    unsigned long tg_iowait = 0;
    u64 tg_nr_switches = 0;
    + unsigned long tg_nr_running = 0;
    #ifdef CONFIG_CGROUP_SCHED
    struct task_group *tg;
    struct task_group *sib;
    @@ -9822,6 +9823,18 @@ int cpu_cgroup_proc_stat(struct cgroup *cgrp, struct cftype *cft,
    }
    #endif
    kstat_unlock();
    +#ifdef CONFIG_CGROUP_SCHED
    + /* root task group has autogrouping, so this doesn't hold */
    + if (tg != &root_task_group) {
    +#ifdef CONFIG_FAIR_GROUP_SCHED
    + tg_nr_running += cpu_rq(i)->cfs.nr_running;
    +#endif
    +#ifdef CONFIG_RT_GROUP_SCHED
    + tg_nr_running += cpu_rq(i)->rt.rt_nr_running;
    +#endif
    + } else
    +#endif
    + tg_nr_running += cpu_rq(i)->nr_running;

    for (j = 0; j < NR_SOFTIRQS; j++) {
    unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
    @@ -9911,7 +9924,7 @@ int cpu_cgroup_proc_stat(struct cgroup *cgrp, struct cftype *cft,
    tg_nr_switches,
    (unsigned long)jif,
    total_forks,
    - nr_running(),
    + tg_nr_running,
    tg_iowait),

    seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);
    --
    1.7.6.4


    \
     
     \ /
      Last update: 2011-11-01 22:23    [W:0.028 / U:2.288 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site