all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH qemu-server 3/6] tests: hotplug: add cases for known defects
Date: Thu, 10 Sep 2026 13:00:30 +0200	[thread overview]
Message-ID: <20260910110832.2822954-4-d.csapak@proxmox.com> (raw)
In-Reply-To: <20260910110832.2822954-1-d.csapak@proxmox.com>

adds some test cases that highlight currently known defects:

* adding scsi14 with an lsi controller tries to hotplug a bridge and fails
* a failed disk add with iothread does not clean up an io thread
* hotplugging a tablet device into an aarch64 vm results in errors due
  to wrong parameter use of a function.

The tests don't fail, but record the faulty behavior.

Fixes for these are sent as individual patches.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 src/test/hotplug/aarch64/tablet-enable.conf   | 21 ++++++++++++
 .../aarch64/tablet-enable.conf.expected       | 28 ++++++++++++++++
 src/test/hotplug/disk-add-fail.conf           | 17 ++++++++++
 src/test/hotplug/disk-add-fail.conf.expected  | 32 +++++++++++++++++++
 src/test/hotplug/disk-add-scsi14-old.conf     | 15 +++++++++
 .../hotplug/disk-add-scsi14-old.conf.expected | 23 +++++++++++++
 6 files changed, 136 insertions(+)
 create mode 100644 src/test/hotplug/aarch64/tablet-enable.conf
 create mode 100644 src/test/hotplug/aarch64/tablet-enable.conf.expected
 create mode 100644 src/test/hotplug/disk-add-fail.conf
 create mode 100644 src/test/hotplug/disk-add-fail.conf.expected
 create mode 100644 src/test/hotplug/disk-add-scsi14-old.conf
 create mode 100644 src/test/hotplug/disk-add-scsi14-old.conf.expected

diff --git a/src/test/hotplug/aarch64/tablet-enable.conf b/src/test/hotplug/aarch64/tablet-enable.conf
new file mode 100644
index 00000000..bb523819
--- /dev/null
+++ b/src/test/hotplug/aarch64/tablet-enable.conf
@@ -0,0 +1,21 @@
+# TEST: enabling the tablet device on aarch64 hotplugs tablet and keyboard
+# HOST_ARCH: aarch64
+arch: aarch64
+bios: ovmf
+bootdisk: scsi0
+cores: 2
+efidisk0: local:8006/vm-8006-disk-2.qcow2,efitype=4m
+machine: virt-10.1
+memory: 2048
+name: hotplug
+net0: virtio=A2:C0:43:77:08:A0,bridge=vmbr0
+ostype: l26
+scsi0: local:8006/vm-8006-disk-0.qcow2,size=32G
+scsihw: virtio-scsi-pci
+smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465
+sockets: 1
+tablet: 0
+vmgenid: c773c261-d800-4348-9f5d-167fadd53cf8
+
+[PENDING]
+tablet: 1
diff --git a/src/test/hotplug/aarch64/tablet-enable.conf.expected b/src/test/hotplug/aarch64/tablet-enable.conf.expected
new file mode 100644
index 00000000..708c5432
--- /dev/null
+++ b/src/test/hotplug/aarch64/tablet-enable.conf.expected
@@ -0,0 +1,28 @@
+# recorded actions
+hmp device_add driver=usb-tablet,id=tablet,bus=uhci.0,port=1
+
+# hotplug errors
+tablet: hotplug problem - Too few arguments for subroutine 'PVE::QemuServer::QMPHelpers::qemu_deviceadd' (got 1; expected 2)
+
+# differences to a freshly started VM
+
+# resulting config
+arch: aarch64
+bios: ovmf
+bootdisk: scsi0
+cores: 2
+efidisk0: local:8006/vm-8006-disk-2.qcow2,efitype=4m
+machine: virt-10.1
+memory: 2048
+name: hotplug
+net0: virtio=A2:C0:43:77:08:A0,bridge=vmbr0
+ostype: l26
+scsi0: local:8006/vm-8006-disk-0.qcow2,size=32G
+scsihw: virtio-scsi-pci
+smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465
+sockets: 1
+tablet: 0
+vmgenid: c773c261-d800-4348-9f5d-167fadd53cf8
+
+[PENDING]
+tablet: 1
diff --git a/src/test/hotplug/disk-add-fail.conf b/src/test/hotplug/disk-add-fail.conf
new file mode 100644
index 00000000..89851b4f
--- /dev/null
+++ b/src/test/hotplug/disk-add-fail.conf
@@ -0,0 +1,17 @@
+# TEST: a disk that does not show up after hotplug is detached again
+# FAIL_DEVICE_ADD: virtio1
+bootdisk: scsi0
+cores: 2
+machine: pc-i440fx-10.1
+memory: 2048
+name: hotplug
+net0: virtio=A2:C0:43:77:08:A0,bridge=vmbr0
+ostype: l26
+scsi0: local:8006/vm-8006-disk-0.qcow2,size=32G
+scsihw: virtio-scsi-pci
+smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465
+sockets: 1
+vmgenid: c773c261-d800-4348-9f5d-167fadd53cf8
+
+[PENDING]
+virtio1: local:8006/vm-8006-disk-1.qcow2,iothread=1,size=32G
diff --git a/src/test/hotplug/disk-add-fail.conf.expected b/src/test/hotplug/disk-add-fail.conf.expected
new file mode 100644
index 00000000..8a36d951
--- /dev/null
+++ b/src/test/hotplug/disk-add-fail.conf.expected
@@ -0,0 +1,32 @@
+# recorded actions
+storage activate_volumes ["local:8006/vm-8006-disk-1.qcow2"]
+qmp object-add {"id":"iothread-virtio1","qom-type":"iothread"}
+qmp object-del {"id":"throttle-drive-virtio1"}
+qmp object-add {"id":"throttle-drive-virtio1","limits":{},"qom-type":"throttle-group"}
+qmp blockdev-add {"detect-zeroes":"on","discard":"ignore","driver":"throttle","file":{"cache":{"direct":true,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"qcow2","file":{"aio":"io_uring","cache":{"direct":true,"no-flush":false},"detect-zeroes":"on","discard":"ignore","driver":"file","filename":"/var/lib/vz/images/8006/vm-8006-disk-1.qcow2","node-name":"ef4c217a7f08cf59741edc1790023f5","read-only":false},"node-name":"ff4c217a7f08cf59741edc1790023f5","read-only":false},"node-name":"drive-virtio1","read-only":false,"throttle-group":"throttle-drive-virtio1"}
+hmp device_add driver=virtio-blk-pci,drive=drive-virtio1,id=virtio1,bus=pci.0,addr=0xb,iothread=iothread-virtio1,write-cache=on
+qmp blockdev-del {"node-name":"drive-virtio1"}
+qmp object-del {"id":"throttle-drive-virtio1"}
+
+# hotplug errors
+virtio1: hotplug problem - error on hotplug device 'virtio1'
+
+# differences to a freshly started VM
+object iothread-virtio1: only present in running VM
+
+# resulting config
+bootdisk: scsi0
+cores: 2
+machine: pc-i440fx-10.1
+memory: 2048
+name: hotplug
+net0: virtio=A2:C0:43:77:08:A0,bridge=vmbr0
+ostype: l26
+scsi0: local:8006/vm-8006-disk-0.qcow2,size=32G
+scsihw: virtio-scsi-pci
+smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465
+sockets: 1
+vmgenid: c773c261-d800-4348-9f5d-167fadd53cf8
+
+[PENDING]
+virtio1: local:8006/vm-8006-disk-1.qcow2,iothread=1,size=32G
diff --git a/src/test/hotplug/disk-add-scsi14-old.conf b/src/test/hotplug/disk-add-scsi14-old.conf
new file mode 100644
index 00000000..9f9e72b9
--- /dev/null
+++ b/src/test/hotplug/disk-add-scsi14-old.conf
@@ -0,0 +1,15 @@
+# TEST: hotplugging a SCSI disk whose new LSI controller needs a hotplugged PCI bridge fails on QEMU < 11.1
+bootdisk: scsi0
+cores: 2
+machine: pc-i440fx-11.0
+memory: 2048
+name: hotplug
+net0: virtio=A2:C0:43:77:08:A0,bridge=vmbr0
+ostype: l26
+scsi0: local:8006/vm-8006-disk-0.qcow2,size=32G
+smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465
+sockets: 1
+vmgenid: c773c261-d800-4348-9f5d-167fadd53cf8
+
+[PENDING]
+scsi14: local:8006/vm-8006-disk-1.qcow2,size=32G
diff --git a/src/test/hotplug/disk-add-scsi14-old.conf.expected b/src/test/hotplug/disk-add-scsi14-old.conf.expected
new file mode 100644
index 00000000..63c2678d
--- /dev/null
+++ b/src/test/hotplug/disk-add-scsi14-old.conf.expected
@@ -0,0 +1,23 @@
+# recorded actions
+storage activate_volumes ["local:8006/vm-8006-disk-1.qcow2"]
+
+# hotplug errors
+scsi14: hotplug problem - can't hotplug bridge necessary for 'scsihw2'
+
+# differences to a freshly started VM
+
+# resulting config
+bootdisk: scsi0
+cores: 2
+machine: pc-i440fx-11.0
+memory: 2048
+name: hotplug
+net0: virtio=A2:C0:43:77:08:A0,bridge=vmbr0
+ostype: l26
+scsi0: local:8006/vm-8006-disk-0.qcow2,size=32G
+smbios1: uuid=7b10d7af-b932-4c66-b2c3-3996152ec465
+sockets: 1
+vmgenid: c773c261-d800-4348-9f5d-167fadd53cf8
+
+[PENDING]
+scsi14: local:8006/vm-8006-disk-1.qcow2,size=32G
-- 
2.47.3





  parent reply	other threads:[~2026-09-10 11:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-10 11:00 [PATCH qemu-server 0/6] add hotplug tests and fix uncovered bugs Dominik Csapak
2026-09-10 11:00 ` [PATCH qemu-server 1/6] tests: hotplug: add initial hotplug test harness Dominik Csapak
2026-09-10 14:24   ` Fiona Ebner
2026-09-11 10:08     ` Dominik Csapak
2026-09-10 11:00 ` [PATCH qemu-server 2/6] tests: hotplug: add some test cases Dominik Csapak
2026-09-10 14:24   ` Fiona Ebner
2026-09-11 10:11     ` Dominik Csapak
2026-09-10 11:00 ` Dominik Csapak [this message]
2026-09-10 11:00 ` [PATCH qemu-server 4/6] tests: hotplug: add test case for adding scsi14 on qemu 11.1 Dominik Csapak
2026-09-10 11:00 ` [PATCH qemu-server 5/6] hotplug: fix vm_deviceplug call for 'tablet' and 'keyboard' on aarch64 Dominik Csapak
2026-09-10 11:00 ` [PATCH qemu-server 6/6] hotplug: remove iothread if adding drive device failed Dominik Csapak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260910110832.2822954-4-d.csapak@proxmox.com \
    --to=d.csapak@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal