[libvirt] [RFC][PATCHv2 00/11] add numatune command

Hu Tao hutao at cn.fujitsu.com
Thu Nov 17 09:44:10 UTC 2011


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




More information about the libvir-list mailing list