libvirt/docs/schemas
Osier Yang 97010eb1f1 numad: Set memory policy from numad advisory nodeset
Though numad will manage the memory allocation of task dynamically,
it wants management application (libvirt) to pre-set the memory
policy according to the advisory nodeset returned from querying numad,
(just like pre-bind CPU nodeset for domain process), and thus the
performance could benefit much more from it.

This patch introduces new XML tag 'placement', value 'auto' indicates
whether to set the memory policy with the advisory nodeset from numad,
and its value defaults to the value of <vcpu> placement, or 'static'
if 'nodeset' is specified. Example of the new XML tag's usage:

  <numatune>
    <memory placement='auto' mode='interleave'/>
  </numatune>

Just like what current "numatune" does, the 'auto' numa memory policy
setting uses libnuma's API too.

If <vcpu> "placement" is "auto", and <numatune> is not specified
explicitly, a default <numatume> will be added with "placement"
set as "auto", and "mode" set as "strict".

The following XML can now fully drive numad:

1) <vcpu> placement is 'auto', no <numatune> is specified.

   <vcpu placement='auto'>10</vcpu>

2) <vcpu> placement is 'auto', no 'placement' is specified for
   <numatune>.

   <vcpu placement='auto'>10</vcpu>
   <numatune>
     <memory mode='interleave'/>
   </numatune>

And it's also able to control the CPU placement and memory policy
independently. e.g.

1) <vcpu> placement is 'auto', and <numatune> placement is 'static'

   <vcpu placement='auto'>10</vcpu>
   <numatune>
     <memory mode='strict' nodeset='0-10,^7'/>
   </numatune>

2) <vcpu> placement is 'static', and <numatune> placement is 'auto'

   <vcpu placement='static' cpuset='0-24,^12'>10</vcpu>
   <numatune>
     <memory mode='interleave' placement='auto'/>
   </numatume>

A follow up patch will change the XML formatting codes to always output
'placement' for <vcpu>, even it's 'static'.
2012-05-08 16:57:32 -06:00
..
basictypes.rng conf: forbid use of multicast mac addresses 2012-03-19 20:33:30 -04:00
capability.rng xml: Clean up schemas to use shared data types instead of local 2012-03-08 15:31:54 +01:00
domain.rng snapshot: update rng to support full domain in xml 2011-09-03 08:12:13 -06:00
domaincommon.rng numad: Set memory policy from numad advisory nodeset 2012-05-08 16:57:32 -06:00
domainsnapshot.rng snapshot: also support disks by path 2011-09-05 07:03:04 -06:00
interface.rng xml: Clean up schemas to use shared data types instead of local 2012-03-08 15:31:54 +01:00
Makefile.am snapshot: update rng to support full domain in xml 2011-09-03 08:12:13 -06:00
network.rng conf: forbid use of multicast mac addresses 2012-03-19 20:33:30 -04:00
networkcommon.rng Implement DNS SRV record into the bridge driver 2012-01-02 23:05:55 +08:00
nodedev.rng xml: Clean up schemas to use shared data types instead of local 2012-03-08 15:31:54 +01:00
nwfilter.rng xml: Clean up schemas to use shared data types instead of local 2012-03-08 15:31:54 +01:00
secret.rng Use a common xml type for ceph secret usage. 2011-10-28 16:01:14 -06:00
storageencryption.rng
storagepool.rng xml: output memory unit for clarity 2012-03-07 18:24:43 -07:00
storagevol.rng xml: output memory unit for clarity 2012-03-07 18:24:43 -07:00