pvpanic-pci is the only reasonable implementation of a panic
device for aarch64/virt guests. Right now we're asking users to
provide the model name manually, but we can be more helpful and
fill it in automatically instead.
With this change, the aarch64-panic-no-model test no longer
fails and so it's no longer useful to us. Instead, we can amend
the aarch64-virt-default-models test case to include panic
coverage, something that until now wasn't possible.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
src/qemu/qemu_domain.c | 3 +++
.../aarch64-panic-no-model.aarch64-latest.err | 1 -
tests/qemuxmlconfdata/aarch64-panic-no-model.xml | 13 -------------
...rt-default-models.aarch64-latest.abi-update.args | 1 +
...irt-default-models.aarch64-latest.abi-update.xml | 3 +++
.../aarch64-virt-default-models.aarch64-latest.args | 1 +
.../aarch64-virt-default-models.aarch64-latest.xml | 3 +++
.../qemuxmlconfdata/aarch64-virt-default-models.xml | 2 +-
tests/qemuxmlconftest.c | 1 -
9 files changed, 12 insertions(+), 16 deletions(-)
delete mode 100644 tests/qemuxmlconfdata/aarch64-panic-no-model.aarch64-latest.err
delete mode 100644 tests/qemuxmlconfdata/aarch64-panic-no-model.xml
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 0cc335eb30..4b3b5077e0 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -4162,6 +4162,9 @@ qemuDomainDefaultPanicModel(const virDomainDef *def)
if (ARCH_IS_X86(def->os.arch))
return VIR_DOMAIN_PANIC_MODEL_ISA;
+ if (qemuDomainIsARMVirt(def))
+ return VIR_DOMAIN_PANIC_MODEL_PVPANIC;
+
return VIR_DOMAIN_PANIC_MODEL_DEFAULT;
}
diff --git a/tests/qemuxmlconfdata/aarch64-panic-no-model.aarch64-latest.err
b/tests/qemuxmlconfdata/aarch64-panic-no-model.aarch64-latest.err
deleted file mode 100644
index 139249bbc5..0000000000
--- a/tests/qemuxmlconfdata/aarch64-panic-no-model.aarch64-latest.err
+++ /dev/null
@@ -1 +0,0 @@
-unsupported configuration: no panic model provided, and no default for the architecture
and machine type
diff --git a/tests/qemuxmlconfdata/aarch64-panic-no-model.xml
b/tests/qemuxmlconfdata/aarch64-panic-no-model.xml
deleted file mode 100644
index 5207e48bbd..0000000000
--- a/tests/qemuxmlconfdata/aarch64-panic-no-model.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<domain type='qemu'>
- <name>guest</name>
- <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
- <memory>4194304</memory>
- <vcpu>4</vcpu>
- <os>
- <type arch='aarch64' machine='virt'>hvm</type>
- </os>
- <devices>
- <emulator>/usr/bin/qemu-system-aarch64</emulator>
- <panic/>
- </devices>
-</domain>
diff --git
a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args
b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args
index a503f45d0c..96fb251d80 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args
@@ -44,4 +44,5 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
-audiodev
'{"id":"audio1","driver":"none"}' \
-device
'{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.5","addr":"0x0"}'
\
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-device
'{"driver":"pvpanic-pci","bus":"pcie.0","addr":"0x2"}'
\
-msg timestamp=on
diff --git
a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml
b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml
index bbe1dd931d..f27e7e1522 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml
@@ -78,5 +78,8 @@
<address type='pci' domain='0x0000' bus='0x05'
slot='0x00' function='0x0'/>
</video>
<memballoon model='none'/>
+ <panic model='pvpanic'>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x02' function='0x0'/>
+ </panic>
</devices>
</domain>
diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args
b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args
index a503f45d0c..96fb251d80 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args
@@ -44,4 +44,5 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
-audiodev
'{"id":"audio1","driver":"none"}' \
-device
'{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.5","addr":"0x0"}'
\
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-device
'{"driver":"pvpanic-pci","bus":"pcie.0","addr":"0x2"}'
\
-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml
b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml
index bbe1dd931d..f27e7e1522 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml
@@ -78,5 +78,8 @@
<address type='pci' domain='0x0000' bus='0x05'
slot='0x00' function='0x0'/>
</video>
<memballoon model='none'/>
+ <panic model='pvpanic'>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x02' function='0x0'/>
+ </panic>
</devices>
</domain>
diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.xml
b/tests/qemuxmlconfdata/aarch64-virt-default-models.xml
index d9ad495e75..a8029d888d 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.xml
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.xml
@@ -19,6 +19,6 @@
</tpm>
<video/>
<memballoon model='none'/>
- <!-- No default model for <panic/> on aarch64 -->
+ <panic/>
</devices>
</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index e97d0e7bdc..5497fb2ba1 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -2648,7 +2648,6 @@ mymain(void)
DO_TEST_CAPS_LATEST("panic");
DO_TEST_CAPS_LATEST("panic-double");
DO_TEST_CAPS_LATEST("panic-no-address");
- DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR("aarch64-panic-no-model",
"aarch64");
DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR("riscv64-panic-no-model",
"riscv64");
DO_TEST_CAPS_LATEST("pvpanic-pci-x86_64");
--
2.46.0