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

Osier Yang jyang at redhat.com
Thu Nov 17 11:08:11 UTC 2011


于 2011年11月17日 17:44, Hu Tao 写道:
> 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,

Which of the mode will work actually? Per they are independant
with each other.

>   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)

As long as the XML is there, it can't be changed for backwards
compatibility, make addtiontions on the existed XML may work?
e.g.

<numatune type='libnuma'>
<memory mode='strict' nodeset='0-10, 15,20'/>
</numatune>

<numatune type='cgroup'>
<memory mode='strict' nodeset='0,1'/>
<memory mode='interleave' nodeset='2,3'/>
<memory mode='preferred' nodeset='4,5'/>
...........
more for the lots of cpuset.mem*?
</numatune>

The type can be "libnuma" by default for backwards campatible.

>
>
> 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(-)
>




More information about the libvir-list mailing list