lkml.org 
[lkml]   [2012]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v5 0/5] CPU hotplug, cpusets, suspend/resume: Fixes, cleanups and optimizations
    Date
    Currently the kernel doesn't handle cpusets properly during suspend/resume.
    After a resume, all non-root cpusets end up having only 1 cpu (the boot cpu),
    causing massive performance degradation of workloads. One major user of cpusets
    is libvirt, which means that after a suspend/hibernation cycle, all VMs
    suddenly end up running terribly slow!

    Also, the kernel moves the tasks from one cpuset to another during CPU hotplug
    in the suspend/resume path, leading to a task-management nightmare after
    resume.

    Patch 1 fixes this by keeping cpusets unmodified in the suspend/resume path.
    But to ensure we don't trip over, it keeps the sched domains updated during
    every CPU hotplug in the s/r path.
    This is a long standing issue and we need to fix up stable kernels too.

    The rest of the patches in the series are mostly cleanups/optimizations
    (except patch 4 which is a non-critical bug fix).

    --
    Srivatsa S. Bhat (5):
    CPU hotplug, cpusets, suspend: Don't modify cpusets during suspend/resume
    cpusets, hotplug: Implement cpuset tree traversal in a helper function
    cpusets, hotplug: Restructure functions that are invoked during hotplug
    cpusets: Update tasks' cpus_allowed mask upon updates to root cpuset
    cpusets: Remove/update outdated comments


    include/linux/cpuset.h | 4 +
    kernel/cpuset.c | 161 +++++++++++++++++++++++++++++++++++-------------
    kernel/sched/core.c | 44 +++++++++++--
    3 files changed, 159 insertions(+), 50 deletions(-)



    Thanks,
    Srivatsa S. Bhat
    IBM Linux Technology Center



    \
     
     \ /
      Last update: 2012-05-17 19:41    [W:0.024 / U:0.632 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site