]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Report supported panic device models in domcapabilities
authorMartin Kletzander <mkletzan@redhat.com>
Fri, 1 Nov 2024 09:25:49 +0000 (10:25 +0100)
committerMartin Kletzander <mkletzan@redhat.com>
Tue, 5 Nov 2024 08:57:37 +0000 (09:57 +0100)
Domain capabilities include information about support for various
devices and models.

Panic devices are not included in the output which means that management
applications need to include the logic for choosing the right device
model or request a default model and try defining such a domain.

Add reporting of panic device models into the domain capabilities based
on the logic in qemuValidateDomainDefPanic() and also report whether
panic devices are supported based on whether at least one model is
supported.  That way consumers of the domain capability XML can
differentiate between libvirt not reporting the panic device models or
no model being supported.

Resolves: https://issues.redhat.com/browse/RHEL-65187
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
77 files changed:
docs/formatdomaincaps.rst
src/conf/domain_capabilities.c
src/conf/domain_capabilities.h
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-tcg-virt.riscv64.xml
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_5.2.0-virt.riscv64.xml
tests/domaincapsdata/qemu_5.2.0.aarch64.xml
tests/domaincapsdata/qemu_5.2.0.ppc64.xml
tests/domaincapsdata/qemu_5.2.0.s390x.xml
tests/domaincapsdata/qemu_5.2.0.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_6.0.0.aarch64.xml
tests/domaincapsdata/qemu_6.0.0.s390x.xml
tests/domaincapsdata/qemu_6.0.0.x86_64.xml
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.1.0.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_6.2.0.aarch64.xml
tests/domaincapsdata/qemu_6.2.0.ppc64.xml
tests/domaincapsdata/qemu_6.2.0.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-hvf.aarch64+hvf.xml
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_7.0.0.aarch64.xml
tests/domaincapsdata/qemu_7.0.0.ppc64.xml
tests/domaincapsdata/qemu_7.0.0.x86_64.xml
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.1.0.ppc64.xml
tests/domaincapsdata/qemu_7.1.0.x86_64.xml
tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.2.0.ppc.xml
tests/domaincapsdata/qemu_7.2.0.x86_64.xml
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_8.0.0-tcg-virt.riscv64.xml
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_8.0.0-virt.riscv64.xml
tests/domaincapsdata/qemu_8.0.0.x86_64.xml
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_8.1.0.s390x.xml
tests/domaincapsdata/qemu_8.1.0.x86_64.xml
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml
tests/domaincapsdata/qemu_8.2.0.aarch64.xml
tests/domaincapsdata/qemu_8.2.0.armv7l.xml
tests/domaincapsdata/qemu_8.2.0.s390x.xml
tests/domaincapsdata/qemu_8.2.0.x86_64.xml
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_9.0.0.sparc.xml
tests/domaincapsdata/qemu_9.0.0.x86_64.xml
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml
tests/domaincapsdata/qemu_9.1.0.s390x.xml
tests/domaincapsdata/qemu_9.1.0.x86_64.xml
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_9.2.0.x86_64.xml

index 5309c6c2513ff0f3962aaf8f6af64f0bc42a942a..886a9f71e123b1bf6bbfbad9ebb8cb4c45e18692 100644 (file)
@@ -671,6 +671,30 @@ Interface device corresponds to `network interface
 ``backendType``
    Options for the ``type`` attribute of the ``<backend/>`` element
 
+Panic device
+^^^^^^^^^^^^
+
+Interface device corresponds to `panic device
+<formatdomain.html#panic-device>`__ (``<panic/>``) in domain XML.
+
+::
+
+  <domainCapabilities>
+    ...
+    <devices>
+      <panic supported='yes'>
+        <enum name='model'>
+          <value>isa</value>
+          <value>hyperv</value>
+        </enum>
+      </panic>
+      ...
+    </devices>
+  </domainCapabilities>
+
+``model``
+   Options for the ``model`` attribute of the ``<panic/>`` element
+
 
 Features
 ~~~~~~~~
index cf40d798e51b3b8f287eb38c20e2ef24ddb9d118..5f70a48cec80c0e53e528bf434468d4dce6ff5a0 100644 (file)
@@ -669,6 +669,18 @@ virDomainCapsDeviceNetFormat(virBuffer *buf,
 }
 
 
+static void
+virDomainCapsDevicePanicFormat(virBuffer *buf,
+                               const virDomainCapsDevicePanic *panic)
+{
+    FORMAT_PROLOGUE(panic);
+
+    ENUM_PROCESS(panic, model, virDomainPanicModelTypeToString);
+
+    FORMAT_EPILOGUE(panic);
+}
+
+
 /**
  * virDomainCapsFeatureGICFormat:
  * @buf: target buffer
@@ -850,6 +862,7 @@ virDomainCapsFormat(const virDomainCaps *caps)
     virDomainCapsDeviceChannelFormat(&buf, &caps->channel);
     virDomainCapsDeviceCryptoFormat(&buf, &caps->crypto);
     virDomainCapsDeviceNetFormat(&buf, &caps->net);
+    virDomainCapsDevicePanicFormat(&buf, &caps->panic);
 
     virBufferAdjustIndent(&buf, -2);
     virBufferAddLit(&buf, "</devices>\n");
index a706ab337ec236bf402311bb09927709e1615371..ef0804686046a66b3c2615139dc4b75c3b841728 100644 (file)
@@ -257,6 +257,13 @@ struct _virDomainCapsDeviceNet {
     virDomainCapsEnum backendType; /* virDomainNetBackendType */
 };
 
+STATIC_ASSERT_ENUM(VIR_DOMAIN_PANIC_MODEL_LAST);
+typedef struct _virDomainCapsDevicePanic virDomainCapsDevicePanic;
+struct _virDomainCapsDevicePanic {
+    virTristateBool supported;
+    virDomainCapsEnum model;   /* virDomainPanicModel */
+};
+
 typedef enum {
     VIR_DOMAIN_CAPS_FEATURE_IOTHREADS = 0,
     VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO,
@@ -295,6 +302,7 @@ struct _virDomainCaps {
     virDomainCapsDeviceChannel channel;
     virDomainCapsDeviceCrypto crypto;
     virDomainCapsDeviceNet net;
+    virDomainCapsDevicePanic panic;
     /* add new domain devices here */
 
     virDomainCapsFeatureGIC gic;
index 9322ae9ae6c83c65307ba445c43bfb1dca328eea..38fdade255fefa646fce673dd77724321d7d0383 100644 (file)
@@ -6639,6 +6639,35 @@ virQEMUCapsFillDomainDeviceNetCaps(virQEMUCaps *qemuCaps,
 }
 
 
+void
+virQEMUCapsFillDomainDevicePanicCaps(virQEMUCaps *qemuCaps,
+                                     const char *machine,
+                                     virDomainCapsDevicePanic *panic)
+{
+    panic->model.report = true;
+
+    if (ARCH_IS_S390(qemuCaps->arch))
+        VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_S390);
+
+    if (ARCH_IS_X86(qemuCaps->arch))
+        VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_HYPERV);
+
+    if (qemuDomainMachineIsPSeries(machine, qemuCaps->arch))
+        VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_PSERIES);
+
+    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PANIC))
+        VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_ISA);
+
+    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PANIC_PCI))
+        VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_PVPANIC);
+
+    if (panic->model.values)
+        panic->supported = VIR_TRISTATE_BOOL_YES;
+    else
+        panic->supported = VIR_TRISTATE_BOOL_NO;
+}
+
+
 /**
  * virQEMUCapsSupportsGICVersion:
  * @qemuCaps: QEMU capabilities
@@ -6817,6 +6846,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
     virDomainCapsDeviceCrypto *crypto = &domCaps->crypto;
     virDomainCapsLaunchSecurity *launchSecurity = &domCaps->launchSecurity;
     virDomainCapsDeviceNet *net = &domCaps->net;
+    virDomainCapsDevicePanic *panic = &domCaps->panic;
 
     virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
 
@@ -6859,6 +6889,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
     virQEMUCapsFillDomainDeviceCryptoCaps(qemuCaps, crypto);
     virQEMUCapsFillDomainLaunchSecurity(qemuCaps, launchSecurity);
     virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, net);
+    virQEMUCapsFillDomainDevicePanicCaps(qemuCaps, domCaps->machine, panic);
 
     return 0;
 }
index 54c7e30903ca082744fe79e723e5a147c538d46b..261abcc1b4738d2ad96c2930c3b4e3165be94ced 100644 (file)
@@ -892,6 +892,10 @@ void virQEMUCapsFillDomainLaunchSecurity(virQEMUCaps *qemuCaps,
 void virQEMUCapsFillDomainDeviceNetCaps(virQEMUCaps *qemuCaps,
                                         virDomainCapsDeviceNet *net);
 
+void virQEMUCapsFillDomainDevicePanicCaps(virQEMUCaps *qemuCaps,
+                                          const char *machine,
+                                          virDomainCapsDevicePanic *panic);
+
 bool virQEMUCapsGuestIsNative(virArch host,
                               virArch guest);
 
index 81bf0ceb004867a052bb50fc043a8a6cf55034a8..5579ad3fc21bdd6b6a98049fb76eeebec258d37e 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index eaed71b4ee4b4c262f33c2d93a262d4807b14d44..ac2805919031317547a28c7ec424f4ec8dcf0bc1 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 054bf4a88bdc0daf9f0306fbe53d684fee70c5df..a111a8d751623fabebcf404f31ad6b80fb6f470f 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 00f434b7d72947d3efa2daf5e36024be1801ca36..4708b32b896e9306abf3d1ce34165b00e7ea269e 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='no'/>
   </devices>
   <features>
     <gic supported='yes'>
index 14d936ea4b0d14f5193cca0ef92ff5942134b984..d636e5686a6d25608cd07a8474ed9e79deb1b0db 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 00f434b7d72947d3efa2daf5e36024be1801ca36..4708b32b896e9306abf3d1ce34165b00e7ea269e 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='no'/>
   </devices>
   <features>
     <gic supported='yes'>
index 3413138fba843285f2e03eec5353d0b4ce44ea9a..a6daef9798a739fcfa4abc6e47aff23b2eabee7f 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pseries</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 34234a7a2cb44994a71dc8b3f2c8ac8c3899c4cc..b64f9087234421d204872878d5d5020a560c5210 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>s390</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index f298829e3463ea631fcef4ec5f1f192d4e40bc91..8882b9c8a7924d51178dfb751047ac234a1477b2 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index c738f2f9ed9595ec5d28c5439a2cddcfd8b3132f..b0a4bce914a058ecae48e297afea632052109a4a 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index bb1c66cdbfb5f97a02e779752cc248711419eaf6..334a523179320d2cc1f6920f2e470071f532f300 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 9f07b6417836cda8b6acd718cf96bb411b4cccda..74f3a04bb05349a2c86f946c5007f7554dd2ec45 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index 9f07b6417836cda8b6acd718cf96bb411b4cccda..74f3a04bb05349a2c86f946c5007f7554dd2ec45 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index 7b3d1ab4929b02e3ba69d9a8e7361e4f9652e68b..0db677999091c7f89a3ccd8b27fe083df0ee2998 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>s390</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 1efa0578bd2dde23be5d2a98d9cb9ecdaf6faf2e..30e5686593b8f40b5f48d7351e3c09a079043aa6 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index fe22898504ad893c3b33791b274b67c69f7797db..777b7c5198d26f93165cd7f3829119cc39d607c4 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 11ef8be5e3f6426980a2ec1488e6f33cbf937ffe..6c58d132d9bfd60d9236207730123f80ba860f9d 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 43ed790a205f7f56db768d59994d10db043369a2..68b0a658dd8db3dd62a5a581e6a0d4b94e645761 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index a7240ff9a701648fa99e939fbcf3d5bb5e35c599..4a055e19ecf9f026b3dc58d3224750044ad678e9 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 40a69c1ce4c506afd416ac0012d7d098b9fd6302..91dbb8ff785348ebe13bdb05d04689ce9dbbd353 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index ea9a62d78922fc55f1a7b0eadeda7e88ee5910c0..051d2782b6123e53fdb2edb2632d19c02546e231 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index ea9a62d78922fc55f1a7b0eadeda7e88ee5910c0..051d2782b6123e53fdb2edb2632d19c02546e231 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index 84f2f31e444cfa907fde1b2d390b7e805715de2c..39b07955dd84384cbb4c89bab5e07b2c1af38312 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pseries</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 1452c4ddd1637b5d9b2771527e6f96f18af702b0..466be5c7a0df8dbd0d622dec867782f266a1e4af 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 32eee7ea3b25fc7c439d674c3243cdb1d0b753b0..bf130dde1075b2236ac1dd7ac5d3ae718a161dc7 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index c118289a42db21f05627df093eb61682e236421c..637579d6ec0241ca2ebb79c9cd4ed2a69b6c7b54 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 89b5758040b7a50321e014858f6a968739a2ef54..1ed0cef05b31a8ee60921eed0bab5416e6aafac8 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 1e0fca49889dc995ec0c8214f7e521499ea29586..4c49343c438e21b939aa90cfe9cf53e9f11db193 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index 1e0fca49889dc995ec0c8214f7e521499ea29586..4c49343c438e21b939aa90cfe9cf53e9f11db193 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index 9c31ff40dc8da1bb52f7214ce1df1b188fb7abb1..52c73d10a4ab8e6305effe27f39ee0ce13e6b87a 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pseries</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 935cdcadfd70604861fdb994e85f7b1eab5a123f..acde0c66d9a368145d8f80bc624f47eebb6d79dc 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 58a39ed39c32b431499a3cbcb47c2699c2ae7cfa..591e15ab24ab3a59169c8a8fe992e621a885158d 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 387195c12ac5f58284475ed8e5b96959b14490b4..52086550dbab7d43955ad93a923cd716adc782fd 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 3028db7af4afdb82ad98470ee7c084b4283abab0..ca0bc6f0b5af04392ecdcb188da60476e09e2885 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pseries</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 5082cc119f94d3dd78c018c911fe582ab77226b7..1170d8ed2caafba310a00989495bbf49997bfd4c 100644 (file)
         <value>default</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 091735d83b2af0f4bcb38ca68ed6747ec17b0e13..75b2f1102d1a3d7bc3bc278d293c8eb97d9ed19b 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index bf6b22a6ad8f29c1ddca126cc7ba84e3e8d934c8..653a7a7bacc384918c7a2de1e53a463f97939877 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 6cc40ab932ae64577f4f3bf82a444af55cfa595f..779bdddad660ad1b60c0b09a44b0994b550169d0 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 6cc40ab932ae64577f4f3bf82a444af55cfa595f..779bdddad660ad1b60c0b09a44b0994b550169d0 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 416ebc6f7647296615181455a2cd897d37448294..c6ef37b1afad13d247e2c958b9b1f7e826cef0a2 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 3c698aea337730575d6578b0e36a82fc957509b6..72d4e7be3984708eccc4e2815a3af62a886c6bfd 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index c5c1b0fa692b0d9d706b745d0d6e70f39a3e6129..3ba9419ede2b003ffaa48cbab28f88123e083ae0 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index af787b8b244e3a32e6f4f3828717d8d0b017b8de..7a9da4fe4fb2d52c1f6720649bab9df6094016a3 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 971d3398ce3ee720499001d22bd4cbe43318f442..e5ef1673c3670ccf09afede9569902c5a699de72 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 0e3e9b817fdf037b595aff08e25f7eac6504e23b..258df5b1342bdfef7ca983c276ca6e1d5c878e7c 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 34341b85595e65a89eeef07ae3eaa9145cba31b0..9b935c0a6bdddafcd01d0eeef0b157fc62124833 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 5ad09e197c21d2a638242d021d31a818c3d3b92b..18d26fbae6a0d9898561360fbeede6afd2499b2e 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index a24986f04cd7a4ae136dcc5614b4723b5a7f62be..6e6a5a8b6c3bbaf33bfa63da68ba2ceef8701ef0 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 3564f74cad02e671df07e818f626881ba2144685..2ca3b1d2ae20dfd6212667e241124f2a6b945952 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>s390</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index c93e05ec60f84a7860aa2a5c951094255c6c8322..8880cc4bba946d351041f3b175dd1edeb19fb5e5 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index fda177a385ae886a4cb1a9f305d27788df6ba525..2cffb87550c2dc8988f30a85d6625f85690d5b59 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 3917ce6138c68e42905194500a5329f363bee6be..c9f01904cdc0774b72fc553616d54e3dff1a60f6 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 694d55f5d8e9bfd16175d226ac46ada2b1dbfde4..5a7042c7ba9578111c220b34e701bcde17d4f054 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 1d1af1a2ac4b8e1046dd17b00b36dca2b594a61b..224c61916896190d51459fbc0d2e3543df17011a 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index edddb6d8e7219c82b7b1be9701704e773926105b..ed3637eaec0ab37a59f7cd47dddf6135ae6dbd3d 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 1d1af1a2ac4b8e1046dd17b00b36dca2b594a61b..224c61916896190d51459fbc0d2e3543df17011a 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='yes'>
index fb0f7665bc5d50e42024ac80c7cbe5d5a7ceaec8..7182dca796f2f22f2adb6113ae1b027dcffac661 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index bcd3f685035f86a4fc6a451dadf89bdf1d3518bf..57ac07c1532f91085c255f0f9da0e69e6dde2755 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>s390</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 35badddb3d3ba0cb8929a542921416ea3c144720..9b18209a23b35019150cf23dc184fa2c4fb967f4 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 01e31c538f4c8fbcc2f9a23503acbe461c035dfc..024375a3548fe92c4bd1120c254d06cc2a48d3eb 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 6449ffefb224ff6c1cb0c885107e2a73f574dabf..f379930ff7c3692cc0f6daf555fffd579c9eabd1 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index ab5c3dc4e9ba0bac8b7fdac65e51f5d6e25c69f0..e48cdd0ae5879bd3c460a05ea92f0a823d2f26a9 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 3f3f25cf239f044f28b0ba3a9f9b79544f30a897..42d38288929ca9a007fb295a67cd5125b8cecf54 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 6dd5dcd7a5b112bc63ebcf0258cb9422b6a237db..945e783a25e5b06f76853b32b38056cc31d7a6d0 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 0ae1d0b614fe110f6d117eeea0950c41bd5d8966..b4327bf8783bf999dbc7157d67600fc78356855d 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 739af1fa3558eb0bc296a24accc43dbf03fd4cad..9ad8eca8452eccd08c803c0e988097b55bd717c3 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index d3b3971127e3af43938a3bf682d8ab82c0722759..73e5ba1bc3760eed898578a4683a0622df8a718f 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 2df3dab0173b0f83904a005249447df785d868bb..be46cfe6ba438900f1c65168d3a39805963a7808 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>s390</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 46a54d8c536951ba15c6dfe2eef939294e290eeb..0a131bb151807ba14e02d32eb6a7ab5cc877c9bf 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index deff784eeb20bce38c82fe985255c421e6905af5..64c84166724479e4a06aee1f5d2acc64ce689e46 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 40da25e78bfd48c700d2c8e47b7aa8cf26765f41..8a4fc13443db83d8a8d735391837d8d2956a9fcb 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>
index 393d24c2baa9dc13c1eed1116cdbdadd654949b6..00f3b78e7e5e99cccbd6c56b911b033df794d599 100644 (file)
         <value>passt</value>
       </enum>
     </interface>
+    <panic supported='yes'>
+      <enum name='model'>
+        <value>isa</value>
+        <value>hyperv</value>
+        <value>pvpanic</value>
+      </enum>
+    </panic>
   </devices>
   <features>
     <gic supported='no'/>