[lkml]   [2008]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 1/3] cpuset: Don't pass empty cpumasks to partition_sched_domains()
    i create a lots of empty cpusets(empty cpumasks) and
    turn off the "sched_load_balance" in top cpuset.

    And i found that all these empty cpumasks are passed to
    partition_sched_domains() in rebuild_sched_domains(),
    it's very time-consuming for partition_sched_domains()
    and it's not need.

    It also reduce memory consumed and some works in
    rebuild_sched_domains() too.

    Signed-off-by: Lai Jiangshan <>
    diff --git a/kernel/cpuset.c b/kernel/cpuset.c
    index 798b3ab..1fbd52c 100644
    --- a/kernel/cpuset.c
    +++ b/kernel/cpuset.c
    @@ -609,8 +609,13 @@ static void rebuild_sched_domains(void)
    while (__kfifo_get(q, (void *)&cp, sizeof(cp))) {
    struct cgroup *cont;
    struct cpuset *child; /* scans child cpusets of cp */
    + if (cpus_empty(cp->cpus_allowed))
    + continue;
    if (is_sched_load_balance(cp))
    csa[csn++] = cp;
    list_for_each_entry(cont, &cp->css.cgroup->children, sibling) {
    child = cgroup_cs(cont);
    __kfifo_put(q, (void *)&child, sizeof(cp));

     \ /
      Last update: 2008-07-16 05:47    [W:0.024 / U:8.452 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site