Currently we only want to use "membind" function of numactl, but perhaps more other functions in future, so introduce element "<numatune>", future NUMA tuning related XML stuffs should go into it. --- docs/formatdomain.html.in | 17 +++++++++++++++++ docs/schemas/domain.rng | 20 ++++++++++++++++++++ 2 files changed, 37 insertions(+), 0 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 5013c48..6da6465 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -288,6 +288,9 @@ <min_guarantee>65536</min_guarantee> </memtune> <vcpu cpuset="1-4,^3,6" current="1">2</vcpu> + <numatune> + <membind nodeset="1,2,!3-6"> + </numatune> ...</pre> <dl> @@ -366,6 +369,20 @@ the OS provided defaults. NB, There is no unit for the value, it's a relative measure based on the setting of other VM, e.g. A VM configured with value 2048 will get twice as much CPU time as a VM configured with value 1024.</dd> + <dt><code>numatune</code></dt> + <dd> The optional <code>numatune</code> element provides details of + how to tune the performance of a NUMA host via controlling NUMA policy for + domain process. + <dt><code>membind</code></dt> + <dd> The optional <code>membind</code> element specify how to allocate memory + for the domain process on a NUMA host. It contains attribute <code>nodeset</code> + , which specifies the NUMA nodes, the memory of domain process will only be + allocated from the specified nodes. <code>nodeset</code> can be specified as + N,N,N or N-N or N,N-N or N-N,N-N and so forth. Relative nodes may be specifed + as +N,N,N or +N-N or +N,N-N and so forth. The + indicates that the node numbers + are relative to the process' set of allowed nodes in its current cpuset. A + !N-N notation indicates the inverse of N-N, in other words all nodes except N-N. + If used with + notation, specify !+N-N.</dd> </dl> <h3><a name="elementsCPU">CPU model and topology</a></h3> diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng index 7163c6e..811f5ed 100644 --- a/docs/schemas/domain.rng +++ b/docs/schemas/domain.rng @@ -387,6 +387,21 @@ </zeroOrMore> </element> </optional> + + <!-- All the NUMA related tunables would go in the numatune --> + <optional> + <element name="numatune"> + <optional> + <!-- Only allocate memory from specified NUMA nodes. --> + <element name="membind"> + <attribute name="nodeset"> + <ref name="nodeset"/> + </attribute> + </element> + </optional> + </element> + </optional> + </interleave> </define> <define name="clock"> @@ -2265,6 +2280,11 @@ <param name="pattern">([0-9]+(-[0-9]+)?|\^[0-9]+)(,([0-9]+(-[0-9]+)?|\^[0-9]+))*</param> </data> </define> + <define name="nodeset"> + <data type="string"> + <param name="pattern">([!\+]?[0-9]+(-[0-9]+)?)(,([!\+]?[0-9]+(-[0-9]+)?))*</param> + </data> + </define> <define name="countCPU"> <data type="unsignedShort"> <param name="pattern">[0-9]+</param> -- 1.7.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list