[PATCH 08/13] conf: Parse and format HMAT
Daniel Henrique Barboza
danielhb413 at gmail.com
Wed Jun 24 22:01:12 UTC 2020
On 6/24/20 10:49 AM, Michal Privoznik wrote:
> To cite ACPI specification:
>
> Heterogeneous Memory Attribute Table describes the memory
> attributes, such as memory side cache attributes and bandwidth
> and latency details, related to the System Physical Address
> (SPA) Memory Ranges. The software is expected to use this
> information as hint for optimization.
>
> According to our upstream discussion [1] this is exposed under
> <numa/> as <cache/> under NUMA <cell/> and <latency> or
> <bandwidth/> under numa/latencies.
>
> 1: https://www.redhat.com/archives/libvir-list/2020-January/msg00422.html
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> docs/formatdomain.html.in | 88 ++++++
> docs/schemas/cputypes.rng | 110 ++++++-
> src/conf/numa_conf.c | 350 ++++++++++++++++++++-
> src/conf/numa_conf.h | 33 ++
> src/libvirt_private.syms | 6 +
> tests/qemuxml2argvdata/numatune-hmat.xml | 52 +++
> tests/qemuxml2xmloutdata/numatune-hmat.xml | 1 +
> tests/qemuxml2xmltest.c | 1 +
> 8 files changed, 625 insertions(+), 16 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/numatune-hmat.xml
> create mode 120000 tests/qemuxml2xmloutdata/numatune-hmat.xml
>
> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
> index 07dcca57f5..78b2d2828d 100644
> --- a/docs/formatdomain.html.in
> +++ b/docs/formatdomain.html.in
> @@ -1931,6 +1931,94 @@
> using 10 for local and 20 for remote distances.
> </p>
>
> + <h4><a id="hmat">Heterogeneous Memory Attribute Table</a></h4>
> +
> +<pre>
> +...
> +<cpu>
> + ...
> + <numa>
> + <cell id='0' cpus='0-3' memory='512000' unit='KiB' discard='yes'/>
> + <cell id='1' cpus='4-7' memory='512000' unit='KiB' memAccess='shared'/>
> + <cell id='3' cpus='0-3' memory='2097152' unit='KiB'>
> + <cache level='1' associativity='direct' policy='writeback'>
> + <size value='10' unit='KiB'/>
> + <line value='8' unit='B'/>
> + </cache>
> + </cell>
> + <latencies>
> + <latency initiator='0' target='0' type='access' value='5'/>
> + <latency initiator='0' target='0' cache='1' type='access' value='10'/>
> + <bandwidth initiator='0' target='0' type='access' value='204800' unit='KiB'/>
> + </latencies>
> + </numa>
> + ...
> +</cpu>
> +...</pre>
> +
> + <p>
> + <span class='since'>Since 6.5.0</span> the <code>cell</code> element can
> + have <code>cache</code> child element which describes memory side cache
"have a <code>cache</code> child ...."
> + for memory proximity domains. The <code>cache</code> element has
"<code>cache</code> element has a"
> + <code>level</code> attribute describing the cache level and thus the
> + element can be repeated multiple times to describe different levels of
> + the cache.
> + </p>
> +
> + <p>
> + The <code>cache</code> element then has <code>associativity</code>
> + attribute (accepted values are <code>none</code>, <code>direct</code> and
> + <code>full</code>) describing the cache associativity, and
> + <code>policy</code> attribute (accepted values are <code>none</code>,
> + <code>writeback</code> and <code>writethrough</code>) describing cache
> + write associativity. The element has two mandatory child elements then:
> + <code>size</code> and <code>line</code> which describe cache size and
> + cache line size. Both elements accept two attributes: <code>value</code>
> + and <code>unit</code> which set the value of corresponding cache
> + attribute.
> + </p>
This second paragraph is about the same <cache> element that you started to describe
in the previous paragraph. Might as well make a big paragraph talking just about the
cache element.
And there's a lot of different elements and attributes at different levels to unpack at
once here. I think you can use a description list (<dl>) here, like you did below with
the <latencies> element, or any other hierarchical HTML struct for that matter, to make
it easier to display all the info you're providing here.
> +
> + <p>
> + The NUMA description has optional <code>latencies</code> element that
"The NUMA description has an optional ..."
Everything else LGTM and these HTML changes are somewhat cosmetic, so:
Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
More information about the libvir-list
mailing list