[PATCH v2 0/7] CPU hotplug,cpusets: Fix issues with cpusets handling upon CPU hotplug

From: Srivatsa S. Bhat
Date: Fri May 04 2012 - 15:18:06 EST


There are several issues related to how cpusets are handled during CPU
hotplug. One of the most annoying and noticeable consequences of this flaw
is that, after a suspend/resume or hibernation/restore, all non-root cpusets
will have only 1 cpu (the boot cpu) in their cpusets. Hence the tasks in
those cpusets get pinned to the boot cpu alone, leading to a drastic
performance degradation of those tasks/workloads.

One major user of cpusets is libvirt, which means that after a
suspend/hibernation cycle, all VMs suddenly end up running terribly slow!

This patchset solves these problems by reworking the way cpusets are handled
during CPU hotplug.

Patches 1 & 2 are cleanups that separate out hotplug handling so that we can
implement different logic for different hotplug events (CPU/Mem
online/offline). This also leads to some optimizations and more importantly
prepares the ground for implementing the cpuset fix for CPU hotplug.

Patches 3 & 4 are the core of the new solution for cpuset handling for
CPU hotplug. Patch 3 introduces the infrastructure needed, and Patch 4
exploits it for hotplug handling.

Patch 5 adds documentation for the new cpuset handling.
Patch 6 is an optimization opened up by the previous patches.
Patch 7 is a trivial removal of an outdated comment.

--
Srivatsa S. Bhat (7):
cpusets, hotplug: Implement cpuset tree traversal in a helper function
cpusets, hotplug: Restructure functions that are invoked during hotplug
cpusets: Introduce 'user_cpus_allowed' and rework the semantics of 'cpus_allowed'
CPU hotplug, cpusets: Workout hotplug handling for cpusets
Docs, cpusets: Update the cpuset documentation
cpusets: Optimize the implementation of guarantee_online_cpus()
cpusets: Remove out-dated comment about cpuset_track_online_cpus


Documentation/cgroups/cpusets.txt | 43 +++--
include/linux/cpuset.h | 4
kernel/cpuset.c | 317 ++++++++++++++++++++++++++++---------
kernel/sched/core.c | 4
4 files changed, 274 insertions(+), 94 deletions(-)



Thanks,
Srivatsa S. Bhat
IBM Linux Technology Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/