libvirt/docs/schemas
Michal Privoznik 0cc6f8931f capabilities: Expose NUMA interconnects
Links between NUMA nodes can have different latencies and
bandwidths. This info is newly defined in ACPI 6.2 under
Heterogeneous Memory Attribute Table (HMAT) table. Linux kernel
learned how to report these values under sysfs and thus we can
expose them in our capabilities XML. The sysfs interface is
documented in kernel's Documentation/admin-guide/mm/numaperf.rst.

Long story short, two nodes can be in initiator-target
relationship. A node can be initiator if it has a CPU or a device
that's capable of initiating memory transfer. Therefore a node
that has just memory can only be target. An initiator-target link
can then have any combination of {bandwidth, latency} - {access,
read, write} attribute (6 in total). However, the standard says
access is applicable iff read and write values are the same.
Therefore, we really have just four combinations of attributes:
bandwidth-read, bandwidth-write, latency-read, latency-write.

This is the combination that kernel reports anyway.

Then, under /sys/system/devices/node/nodeX/acccessN/initiators we
find values for those 4 attributes and also symlinks named
"nodeN" which then represent initiators to nodeX. For instance:

  /sys/system/node/node1/access1/initiators/node0 -> ../../node0
  /sys/system/node/node1/access1/initiators/read_bandwidth
  /sys/system/node/node1/access1/initiators/read_latency
  /sys/system/node/node1/access1/initiators/write_bandwidth
  /sys/system/node/node1/access1/initiators/write_latency

This means that node0 is initiator and node1 is target and values
of the interconnect can be read.

In theory, there can be separate links to memory side caches too
(e.g. one link from node X to node Y's main memory, another from
node X to node Y's L1 cache, another one to L2 cache and so on).
But sysfs does not express this relationship just yet.

The "accessN" means either "access0" or "access1". The difference
is that while the former expresses the best interconnect between
two nodes including CPUS and I/O devices (such as GPUs and NICs),
the latter includes only CPUs and thus is what we need.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1786309
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2021-06-15 11:03:25 +02:00
..
basictypes.rng schema: Add define for object names 2021-01-08 09:18:21 +01:00
capability.rng capabilities: Expose NUMA interconnects 2021-06-15 11:03:25 +02:00
cpu.rng schema: Add schema for guest or host cpu definition 2020-10-07 09:18:07 +02:00
cputypes.rng schemas: Add support for maximum CPU mode 2021-02-10 15:00:45 +01:00
domain.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
domainbackup.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
domaincaps.rng conf: domcaps: Report device <filesystem> 2021-05-18 14:33:21 +02:00
domaincheckpoint.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
domaincommon.rng conf: add support for timer period audio setting 2021-06-04 12:07:46 +01:00
domainsnapshot.rng conf: snapshot: Add support for <metadata_cache> 2021-01-08 15:27:00 +01:00
interface.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
meson.build schema: Add schema for guest or host cpu definition 2020-10-07 09:18:07 +02:00
network.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
networkcommon.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
networkport.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
nodedev.rng nodedev: Revert auto-start property for mdevs 2021-05-27 15:38:28 +02:00
nwfilter_params.rng schemas: add schema for nwfilter binding XML document 2018-06-26 11:22:07 +01:00
nwfilter.rng schema: nwfiter: Allow leading/trailing whitespace in 'variable-name-type' 2020-10-20 09:05:10 +02:00
nwfilterbinding.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
secret.rng schema: secret: Relax requirements for usage name 2021-01-08 09:18:21 +01:00
storagecommon.rng storage: add support for QCOW2 cluster_size option 2021-05-21 14:00:43 +02:00
storagepool.rng schema: Add define for object names 2021-01-08 09:18:21 +01:00
storagepoolcaps.rng schema: Unify apostrophe and quotation mark usage 2020-10-07 09:18:07 +02:00
storagevol.rng storage: add support for QCOW2 cluster_size option 2021-05-21 14:00:43 +02:00