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    [from the cache]
©2003-2011 Jasper Spaans