<div>
                    hi Martin
                </div><div><br></div><div>The code looks good to me, I have 1 comment for the granularity’s comment, and another one for the test data.</div><div><br></div><div>Otherwise, looks perfect, good to learn how to deal with hex </div>
                <div></div>
                 
                <p style="color: #A0A0A8;">On Monday, 5 June 2017 at 9:14 PM, Martin Kletzander wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div>On some platforms the number of bits in the cbm_mask might not be</div><div>divisible by 4 (and not even by 2), so we need to properly count the</div><div>bits.  Similar file, min_cbm_bits, is properly parsed and used, but if</div><div>the number is greater than one, we lose the information about</div><div>granularity when reporting the data in capabilities.  For that matter</div><div>always report granularity, but if it is not the same as the minimum,</div><div>add that information in there as well.</div><div><br></div><div>Signed-off-by: Martin Kletzander <<a href="mailto:mkletzan@redhat.com">mkletzan@redhat.com</a>></div><div>---</div><div> docs/schemas/capability.rng                        |  7 ++++-</div><div> src/conf/capabilities.c                            | 34 ++++++++++++++++++----</div><div> src/conf/capabilities.h                            |  1 +</div><div> .../linux-resctrl-skx/resctrl/info/L3/cbm_mask     |  1 +</div><div> .../linux-resctrl-skx/resctrl/info/L3/min_cbm_bits |  1 +</div><div> .../linux-resctrl-skx/resctrl/info/L3/num_closids  |  1 +</div><div> .../linux-resctrl-skx/resctrl/schemata             |  1 +</div><div> .../system/cpu/cpu0/cache/index0/id                |  1 +</div><div> .../system/cpu/cpu0/cache/index0/level             |  1 +</div><div> .../system/cpu/cpu0/cache/index0/shared_cpu_list   |  1 +</div><div> .../system/cpu/cpu0/cache/index0/shared_cpu_map    |  1 +</div><div> .../system/cpu/cpu0/cache/index0/size              |  1 +</div><div> .../system/cpu/cpu0/cache/index0/type              |  1 +</div><div> .../linux-resctrl-skx/system/cpu/cpu0/online       |  1 +</div><div> .../system/cpu/cpu0/topology/core_id               |  1 +</div><div> .../system/cpu/cpu0/topology/core_siblings         |  1 +</div><div> .../system/cpu/cpu0/topology/core_siblings_list    |  1 +</div><div> .../system/cpu/cpu0/topology/physical_package_id   |  1 +</div><div> .../system/cpu/cpu0/topology/thread_siblings       |  1 +</div><div> .../system/cpu/cpu0/topology/thread_siblings_list  |  1 +</div><div> .../linux-resctrl-skx/system/cpu/online            |  1 +</div><div> .../linux-resctrl-skx/system/cpu/present           |  1 +</div><div> .../linux-resctrl-skx/system/node/node0/cpu0       |  1 +</div><div> .../linux-resctrl-skx/system/node/node0/cpulist    |  1 +</div><div> .../linux-resctrl-skx/system/node/node0/cpumap     |  1 +</div><div> .../linux-resctrl-skx/system/node/node0/distance   |  1 +</div><div> .../linux-resctrl-skx/system/node/online           |  1 +</div><div> .../vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml |  8 ++---</div><div> .../vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml | 31 ++++++++++++++++++++</div><div> tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml   |  4 +--</div><div> tests/vircaps2xmltest.c                            |  1 +</div><div> 31 files changed, 97 insertions(+), 13 deletions(-)</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/cbm_mask</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/min_cbm_bits</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/num_closids</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/resctrl/schemata</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/id</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/level</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_list</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_map</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/size</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/type</div></div></div></span></blockquote><div>It seems you miss cache/index3 ?</div><div> </div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;"><span><div><div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/online</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_id</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings_list</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/physical_package_id</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings_list</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/online</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/present</div><div> create mode 120000 tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpu0</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpulist</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpumap</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/distance</div><div> create mode 100644 tests/vircaps2xmldata/linux-resctrl-skx/system/node/online</div><div> create mode 100644 tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml</div><div><br></div><div>diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng</div><div>index e5cbfa362ec0..071090c2d991 100644</div><div>--- a/docs/schemas/capability.rng</div><div>+++ b/docs/schemas/capability.rng</div><div>@@ -273,9 +273,14 @@</div><div>           </attribute></div><div>           <zeroOrMore></div><div>             <element name='control'></div><div>-              <attribute name='min'></div><div>+              <attribute name='granularity'></div><div>                 <ref name='unsignedInt'/></div><div>               </attribute></div><div>+              <optional></div><div>+                <attribute name='min'></div><div>+                  <ref name='unsignedInt'/></div><div>+                </attribute></div><div>+              </optional></div><div>               <attribute name='unit'></div><div>                 <ref name='unit'/></div><div>               </attribute></div><div>diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c</div><div>index 3becc7e18c62..0f99f3096292 100644</div><div>--- a/src/conf/capabilities.c</div><div>+++ b/src/conf/capabilities.c</div><div>@@ -31,6 +31,7 @@</div><div> #include <unistd.h></div><div><br></div><div> #include "capabilities.h"</div><div>+#include "c-ctype.h"</div><div> #include "count-one-bits.h"</div><div> #include "cpu_conf.h"</div><div> #include "domain_conf.h"</div><div>@@ -906,11 +907,24 @@ virCapabilitiesFormatCaches(virBufferPtr buf,</div><div><br></div><div>         virBufferAdjustIndent(&controlBuf, indent + 4);</div><div>         for (j = 0; j < bank->ncontrols; j++) {</div><div>-            bool min_kilos = !(bank->controls[j]->min % 1024);</div><div>+            bool min_kilos = !(bank->controls[j]->granularity % 1024);</div><div>+</div><div>+            /* Only use KiB if both values are divisible */</div><div>+            if (bank->controls[j]->min)</div><div>+                min_kilos = min_kilos && !(bank->controls[j]->min % 1024);</div><div>+</div><div>+            virBufferAsprintf(&controlBuf,</div><div>+                              "<control granularity='%llu'",</div><div>+                              bank->controls[j]->granularity >> (min_kilos * 10));</div><div>+</div><div>+            if (bank->controls[j]->min) {</div><div>+                virBufferAsprintf(&controlBuf,</div><div>+                                  " min='%llu'",</div><div>+                                  bank->controls[j]->min >> (min_kilos * 10));</div><div>+            }</div><div>+</div><div>             virBufferAsprintf(&controlBuf,</div><div>-                              "<control min='%llu' unit='%s' "</div><div>-                              "type='%s' maxAllocs='%u'/>\n",</div><div>-                              bank->controls[j]->min >> (min_kilos * 10),</div><div>+                              " unit='%s' type='%s' maxAllocs='%u'/>\n",</div><div>                               min_kilos ? "KiB" : "B",</div><div>                               virCacheTypeToString(bank->controls[j]->scope),</div><div>                               bank->controls[j]->max_allocation);</div><div>@@ -1598,9 +1612,11 @@ virCapabilitiesGetCacheControl(virCapsHostCacheBankPtr bank,</div><div>                                virCacheType scope)</div><div> {</div><div>     int ret = -1;</div><div>+    char *tmp = NULL;</div><div>     char *path = NULL;</div><div>     char *cbm_mask = NULL;</div><div>     char *type_upper = NULL;</div><div>+    unsigned int bits = 0;</div><div>     unsigned int min_cbm_bits = 0;</div><div>     virCapsHostCacheControlPtr control;</div><div><br></div><div>@@ -1632,8 +1648,14 @@ virCapabilitiesGetCacheControl(virCapsHostCacheBankPtr bank,</div><div><br></div><div>     virStringTrimOptionalNewline(cbm_mask);</div><div><br></div><div>-    /* cbm_mask: cache bit mask, it's in hex, eg: fffff */</div><div>-    control->min = min_cbm_bits * bank->size / (strlen(cbm_mask) * 4);</div><div>+    for (tmp = cbm_mask; *tmp != '\0'; tmp++) {</div><div>+        if (c_isxdigit(*tmp))</div><div>+            bits += count_one_bits(virHexToBin(*tmp));</div><div>+    }</div><div>+</div><div>+    control->granularity = bank->size / bits;</div><div>+    if (min_cbm_bits != 1)</div><div>+        control->min = min_cbm_bits * control->granularity;</div><div><br></div><div>     control->scope = scope;</div><div><br></div><div>diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h</div><div>index ee87d598ef66..d4753db0beec 100644</div><div>--- a/src/conf/capabilities.h</div><div>+++ b/src/conf/capabilities.h</div><div>@@ -152,6 +152,7 @@ typedef struct _virCapsHostCacheControl virCapsHostCacheControl;</div><div> typedef virCapsHostCacheControl *virCapsHostCacheControlPtr;</div><div> struct _virCapsHostCacheControl {</div><div>     unsigned long long min; /* minimum cache control size in B */</div><div>+    unsigned long long granularity; /* minimum increase step for min in B */</div></div></div></span></blockquote><div><br></div><div>The comments may look confused,  and it will be better to describe min will be optional if min equal to granularity.</div><div> </div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;"><span><div><div><div>     virCacheType scope;  /* data, code or both */</div><div>     unsigned int max_allocation; /* max number of supported allocations */</div><div> };</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/cbm_mask b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/cbm_mask</div><div>new file mode 100644</div><div>index 000000000000..d482bbb26931</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/cbm_mask</div><div>@@ -0,0 +1 @@</div><div>+7ff</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/min_cbm_bits b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/min_cbm_bits</div><div>new file mode 100644</div><div>index 000000000000..d00491fd7e5b</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/min_cbm_bits</div><div>@@ -0,0 +1 @@</div><div>+1</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/num_closids b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/num_closids</div><div>new file mode 100644</div><div>index 000000000000..b6a7d89c68e0</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/info/L3/num_closids</div><div>@@ -0,0 +1 @@</div><div>+16</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/schemata b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/schemata</div><div>new file mode 100644</div><div>index 000000000000..4a4913735386</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/resctrl/schemata</div><div>@@ -0,0 +1 @@</div><div>+L3:0=7ff;1=7ff</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/id b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/id</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/id</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/level b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/level</div><div>new file mode 100644</div><div>index 000000000000..00750edc07d6</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/level</div><div>@@ -0,0 +1 @@</div><div>+3</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_list b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_list</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_list</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_map b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_map</div><div>new file mode 100644</div><div>index 000000000000..5325a8dff751</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/shared_cpu_map</div><div>@@ -0,0 +1 @@</div><div>+001</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/size b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/size</div><div>new file mode 100644</div><div>index 000000000000..24a7d60e7fb9</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/size</div><div>@@ -0,0 +1 @@</div><div>+11264K</div></div></div></span></blockquote><div>I checked that on SKX, the cache size is 33792K (33M), it’s good that it can be divided by 11. </div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;"><span><div><div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/type b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/type</div><div>new file mode 100644</div><div>index 000000000000..e4fd9dccda2c</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/cache/index0/type</div><div>@@ -0,0 +1 @@</div><div>+Unified</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/online b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/online</div><div>new file mode 100644</div><div>index 000000000000..d00491fd7e5b</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/online</div><div>@@ -0,0 +1 @@</div><div>+1</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_id b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_id</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_id</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings</div><div>new file mode 100644</div><div>index 000000000000..5325a8dff751</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings</div><div>@@ -0,0 +1 @@</div><div>+001</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings_list b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings_list</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/core_siblings_list</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/physical_package_id b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/physical_package_id</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/physical_package_id</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings</div><div>new file mode 100644</div><div>index 000000000000..5325a8dff751</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings</div><div>@@ -0,0 +1 @@</div><div>+001</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings_list</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/cpu0/topology/thread_siblings_list</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/online b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/online</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/online</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/present b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/present</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/cpu/present</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpu0 b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpu0</div><div>new file mode 120000</div><div>index 000000000000..c841bea28b2b</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpu0</div><div>@@ -0,0 +1 @@</div><div>+../../cpu/cpu0</div><div>\ No newline at end of file</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpulist b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpulist</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpulist</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpumap b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpumap</div><div>new file mode 100644</div><div>index 000000000000..5325a8dff751</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/cpumap</div><div>@@ -0,0 +1 @@</div><div>+001</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/distance b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/distance</div><div>new file mode 100644</div><div>index 000000000000..f599e28b8ab0</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/node0/distance</div><div>@@ -0,0 +1 @@</div><div>+10</div><div>diff --git a/tests/vircaps2xmldata/linux-resctrl-skx/system/node/online b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/online</div><div>new file mode 100644</div><div>index 000000000000..573541ac9702</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/linux-resctrl-skx/system/node/online</div><div>@@ -0,0 +1 @@</div><div>+0</div><div>diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml</div><div>index 49aa0b98ca88..7361537bfb56 100644</div><div>--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml</div><div>+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml</div><div>@@ -42,12 +42,12 @@</div><div>     </topology></div><div>     <cache></div><div>       <bank id='0' level='3' type='both' size='15360' unit='KiB' cpus='0-5'></div><div>-        <control min='768' unit='KiB' type='code' maxAllocs='8'/></div><div>-        <control min='768' unit='KiB' type='data' maxAllocs='8'/></div><div>+        <control granularity='768' unit='KiB' type='code' maxAllocs='8'/></div><div>+        <control granularity='768' unit='KiB' type='data' maxAllocs='8'/></div><div>       </bank></div><div>       <bank id='1' level='3' type='both' size='15360' unit='KiB' cpus='6-11'></div><div>-        <control min='768' unit='KiB' type='code' maxAllocs='8'/></div><div>-        <control min='768' unit='KiB' type='data' maxAllocs='8'/></div><div>+        <control granularity='768' unit='KiB' type='code' maxAllocs='8'/></div><div>+        <control granularity='768' unit='KiB' type='data' maxAllocs='8'/></div><div>       </bank></div><div>     </cache></div><div>   </host></div><div>diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml</div><div>new file mode 100644</div><div>index 000000000000..f582581148f7</div><div>--- /dev/null</div><div>+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml</div><div>@@ -0,0 +1,31 @@</div><div>+<capabilities></div><div>+</div><div>+  <host></div><div>+    <cpu></div><div>+      <arch>x86_64</arch></div><div>+    </cpu></div><div>+    <power_management/></div><div>+    <migration_features></div><div>+      <live/></div><div>+    </migration_features></div><div>+    <topology></div><div>+      <cells num='1'></div><div>+        <cell id='0'></div><div>+          <memory unit='KiB'>1048576</memory></div><div>+          <pages unit='KiB' size='4'>2048</pages></div><div>+          <pages unit='KiB' size='2048'>4096</pages></div><div>+          <pages unit='KiB' size='1048576'>6144</pages></div><div>+          <cpus num='1'></div><div>+            <cpu id='0' socket_id='0' core_id='0' siblings='0'/></div><div>+          </cpus></div><div>+        </cell></div><div>+      </cells></div><div>+    </topology></div><div>+    <cache></div><div>+      <bank id='0' level='3' type='both' size='11264' unit='KiB' cpus='0'></div><div>+        <control granularity='1024' unit='KiB' type='both' maxAllocs='16'/></div><div>+      </bank></div><div>+    </cache></div><div>+  </host></div><div>+</div><div>+</capabilities></div><div>diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml</div><div>index cb78b4ab788d..eb02ad3322a2 100644</div><div>--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml</div><div>+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml</div><div>@@ -42,10 +42,10 @@</div><div>     </topology></div><div>     <cache></div><div>       <bank id='0' level='3' type='both' size='15360' unit='KiB' cpus='0-5'></div><div>-        <control min='1536' unit='KiB' type='both' maxAllocs='4'/></div><div>+        <control granularity='768' min='1536' unit='KiB' type='both' maxAllocs='4'/></div><div>       </bank></div><div>       <bank id='1' level='3' type='both' size='15360' unit='KiB' cpus='6-11'></div><div>-        <control min='1536' unit='KiB' type='both' maxAllocs='4'/></div><div>+        <control granularity='768' min='1536' unit='KiB' type='both' maxAllocs='4'/></div><div>       </bank></div><div>     </cache></div><div>   </host></div><div>diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c</div><div>index ae1cd521111e..c0a67858fec3 100644</div><div>--- a/tests/vircaps2xmltest.c</div><div>+++ b/tests/vircaps2xmltest.c</div><div>@@ -120,6 +120,7 @@ mymain(void)</div><div><br></div><div>     DO_TEST_FULL("resctrl", VIR_ARCH_X86_64, true, true, true);</div><div>     DO_TEST_FULL("resctrl-cdp", VIR_ARCH_X86_64, true, true, true);</div><div>+    DO_TEST_FULL("resctrl-skx", VIR_ARCH_X86_64, true, true, true);</div><div><br></div><div>     return ret;</div><div> }</div><div>-- </div><div>2.13.0</div><div><br></div><div>--</div><div>libvir-list mailing list</div><div><a href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a></div><div><a href="https://www.redhat.com/mailman/listinfo/libvir-list">https://www.redhat.com/mailman/listinfo/libvir-list</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>