]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Add capability for SBBC pSeries feature
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Mon, 27 Apr 2020 12:14:28 +0000 (09:14 -0300)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 27 Apr 2020 12:43:04 +0000 (14:43 +0200)
SBBC (Speculation Barrier Bounds Checking) is another capability
related to Spectre mitigation efforts in Power processors. It
was implemented in QEMU 2.12 by commit 09114fd81799.

This patch introduces it as QEMU_CAPS_MACHINE_PSERIES_CAP_SBBC to
be implemented in the next patch. Like the case with the now
implemented CFPC, exposing this feature in the XML allows for
a cleaner way for users to tune the SBBC accordingly, given
that not all hypervisor and guest setups supports this
Spectre mitigation.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml

index 4838f3cfb56c609a7bfa960543f9a36d8929ca06..2e2b9874a77522aaede0d8a2c3f898f2b87bc643 100644 (file)
@@ -575,6 +575,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "pcie-root-port.hotplug",
               "aio.io_uring",
               "machine.pseries.cap-cfpc",
+
+              /* 365 */
+              "machine.pseries.cap-sbbc",
     );
 
 
@@ -1619,6 +1622,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsPSeries[] = {
     { "cap-nested-hv", QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV },
     { "cap-ccf-assist", QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_ASSIST },
     { "cap-cfpc", QEMU_CAPS_MACHINE_PSERIES_CAP_CFPC },
+    { "cap-sbbc", QEMU_CAPS_MACHINE_PSERIES_CAP_SBBC },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsVirt[] = {
index 88cf44ed5949902353794a6b3b283a4dc2094b30..4040c50dc407ddae75774af5c00f01d97b7e2428 100644 (file)
@@ -557,6 +557,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_AIO_IO_URING, /* -blockdev {...,"aio":"io_uring",...} */
     QEMU_CAPS_MACHINE_PSERIES_CAP_CFPC, /* -machine pseries.cap-cfpc */
 
+    /* 365 */
+    QEMU_CAPS_MACHINE_PSERIES_CAP_SBBC, /* -machine pseries.cap-sbbc */
+
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
 
index cdd4f269939b2e6c196941a2ffd467c0f9f00934..2046f1097c21e2bf56d9834697137c6b98f8b431 100644 (file)
   <flag name='drive-nvme'/>
   <flag name='i8042'/>
   <flag name='machine.pseries.cap-cfpc'/>
+  <flag name='machine.pseries.cap-sbbc'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900289</microcodeVersion>
index 84e9ad2dcc9e95803cf59188cb81d15703d1bd30..9e71080152e7318e4fc23af59ee60e3d46ed94f4 100644 (file)
   <flag name='drive-nvme'/>
   <flag name='i8042'/>
   <flag name='machine.pseries.cap-cfpc'/>
+  <flag name='machine.pseries.cap-sbbc'/>
   <version>2012050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900239</microcodeVersion>
index 3d70a67dab4541cdbedcfb6686c498dbb92258f1..f13b384e919c2fc9c1e00bf7f38333fb4286762f 100644 (file)
   <flag name='i8042'/>
   <flag name='storage.werror'/>
   <flag name='machine.pseries.cap-cfpc'/>
+  <flag name='machine.pseries.cap-sbbc'/>
   <version>3000091</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900240</microcodeVersion>
index ce2d470cb295148553ca0d027737c4147e3de152..674e4b4944ec19c94c01d0609adff074857e229d 100644 (file)
   <flag name='i8042'/>
   <flag name='storage.werror'/>
   <flag name='machine.pseries.cap-cfpc'/>
+  <flag name='machine.pseries.cap-sbbc'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900240</microcodeVersion>
index a813776660911463cad2e687ff600dd1a23bd502..f89498171bef534efde4217832dbff589c0edfda 100644 (file)
   <flag name='rng-builtin'/>
   <flag name='storage.werror'/>
   <flag name='machine.pseries.cap-cfpc'/>
+  <flag name='machine.pseries.cap-sbbc'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900242</microcodeVersion>
index c33786b0bf52ad2abec5426d6ba53ae7704ed901..ebc39130dfc685de07d83dfdc51d308b108d0f3f 100644 (file)
   <flag name='fsdev.multidevs'/>
   <flag name='virtio.packed'/>
   <flag name='machine.pseries.cap-cfpc'/>
+  <flag name='machine.pseries.cap-sbbc'/>
   <version>4002050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900241</microcodeVersion>