This series does mainly two things:
1. use cgroup cpuset to manage numa parameters
2. add a virsh command numatune to allow user to change numa parameters
from command line
Current numa parameters include nodeset and mode, but these cgroup cpuset
provides don't completely match with them, details:
params cpuset
------------------------------------------------------
nodeset cpuset provides cpuset.mems
mode strict cpuset provides cpuset.mem_hardwall
mode interleave cpuset provices cpuset.memory_spread_*
mode preferred no equivalent. !spread to preferred?
Besides, only one of the mode can be set currently at a time, but
for cpuset, the parameters are independent. From the perspective
of cpuset, we can set all the modes values independently, but it
seems not be consistent with the current numatune definition in xml.
Maybe we can improve the xml definition to fit cpuset better?(there
are more cpuset parameters than listed above)
Hu Tao (11):
don't modify CPU set string in virDomainCpuSetParse
enable cgroup cpuset by default
Add functions to set/get cgroup cpuset parameters
introduce numa backend
use cpuset to manage numa
add VIR_DOMAIN_NUMATUNE_MEM_NONE
add new API virDomain{G,S}etNumaParameters
Implement main entries of virDomain{G,S}etNumaParameters
Add virDomain{G,S}etNumaParameters support to the remote driver
Implement virDomain{G,S}etNumaParameters for the qemu driver
add new command numatune to virsh
daemon/remote.c | 64 +++++++
include/libvirt/libvirt.h.in | 23 +++
python/generator.py | 2 +
src/conf/domain_conf.c | 2 +-
src/conf/domain_conf.h | 9 +
src/driver.h | 15 ++
src/libvirt.c | 113 ++++++++++++
src/libvirt_private.syms | 10 +
src/libvirt_public.syms | 6 +
src/qemu/qemu.conf | 5 +-
src/qemu/qemu_cgroup.c | 73 ++++++++
src/qemu/qemu_conf.c | 3 +-
src/qemu/qemu_driver.c | 399 ++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_process.c | 11 +-
src/remote/remote_driver.c | 50 ++++++
src/remote/remote_protocol.x | 25 +++-
src/remote_protocol-structs | 16 ++
src/util/cgroup.c | 112 ++++++++++++
src/util/cgroup.h | 11 ++
tools/virsh.c | 180 +++++++++++++++++++
20 files changed, 1121 insertions(+), 8 deletions(-)
--
1.7.3.1