libvirt/docs/schemas
Peter Krempa 828820e2d3 schemas: Add schemas for more CPU topology information in the caps XML
This patch adds RNG schemas for adding more information in the topology
output of the NUMA section in the capabilities XML.

The added elements are designed to provide more information about the
placement and topology of the processors in the system to management
applications.

A demonstration of supported XML added by this patch:
<capabilities>
  <host>
    <topology>
      <cells num='3'>
        <cell id='0'>
          <cpus num='4'> <!-- this is node with Hyperthreading -->
            <cpu id='0' socket_id='0' core_id='0' siblings='0-1'/>
            <cpu id='1' socket_id='0' core_id='0' siblings='0-1'/>
            <cpu id='2' socket_id='0' core_id='1' siblings='2-3'/>
            <cpu id='3' socket_id='0' core_id='1' siblings='2-3'/>
          </cpus>
        </cell>
        <cell id='1'>
          <cpus num='4'> <!-- this is node with modules (Bulldozer) -->
            <cpu id='4' socket_id='0' core_id='2' siblings='4-5'/>
            <cpu id='5' socket_id='0' core_id='3' siblings='4-5'/>
            <cpu id='6' socket_id='0' core_id='4' siblings='6-7'/>
            <cpu id='7' socket_id='0' core_id='5' siblings='6-7'/>
          </cpus>
         </cell>
        <cell id='2'>
          <cpus num='4'> <!-- this is a normal multi-core node -->
            <cpu id='8' socket_id='1' core_id='0' siblings='8'/>
            <cpu id='9' socket_id='1' core_id='1' siblings='9'/>
            <cpu id='10' socket_id='1' core_id='2' siblings='10'/>
            <cpu id='11' socket_id='1' core_id='3' siblings='11'/>
          </cpus>
         </cell>
      </cells>
    </topology>
  </host>
</capabilities>

The socket_id field represents identification of the physical socket the
CPU is plugged in. This ID may not be identical to the physical socket
ID reported by the kernel.

The core_id identifies a core within a socket. Also this field may not
accurately represent physical ID's.

The core_id is guaranteed to be unique within a cell and a socket. There
may be duplicates between sockets. Only cores sharing core_id within one
cell and one socket can be considered as threads. Cores sharing core_id
within sparate cells are distinct cores.

The siblings field is a list of CPU id's the cpu id's the CPU is sibling
with - thus a thread. The list is in the cpuset format.
2013-01-24 10:53:00 +01:00
..
basictypes.rng schema: Make the cpuset type reusable across schema files 2013-01-24 10:53:00 +01:00
capability.rng schemas: Add schemas for more CPU topology information in the caps XML 2013-01-24 10:53:00 +01:00
domain.rng snapshot: update rng to support full domain in xml 2011-09-03 08:12:13 -06:00
domaincommon.rng schema: Make the cpuset type reusable across schema files 2013-01-24 10:53:00 +01:00
domainsnapshot.rng snapshot: new XML for external system checkpoint 2012-11-02 09:56:23 -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 network: add support for DHCPv6 2012-12-11 05:49:45 -05:00
networkcommon.rng bandwidth: add new 'floor' attribute 2012-12-11 18:35:12 +01:00
nodedev.rng rng: Have colorful *.rng with editor 2013-01-23 23:03:17 +08:00
nwfilter.rng nwfilter: Add support for ipset 2012-05-21 06:26:34 -04:00
secret.rng Use a common xml type for ceph secret usage. 2011-10-28 16:01:14 -06:00
storageencryption.rng rng: Have colorful *.rng with editor 2013-01-23 23:03:17 +08:00
storagepool.rng Update xml schemas according to libvirt source 2012-08-02 14:36:23 -06:00
storagevol.rng Added timestamps to storage volumes 2012-08-02 17:14:17 -06:00