Skip to content

io_uring / iothread regression 7.1.0

Host environment

  • Operating system: Arch Linux
  • OS/kernel version: Linux foo 5.19.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 31 Aug 2022 22:09:40 +0000 x86_64 GNU/Linux
  • Architecture: x86_64
  • QEMU flavor: qemu-system-x86_64
  • QEMU version: 7.1.0
  • liburing version: 2.2

Emulated/Virtualized environment

  • Operating system: All
  • Architecture: x86-64

Description of problem

After upgrading to 7.1.0, some of my libvirt VM's failed to boot. I have narrowed down the issue to the combination of:

  • io_uring
  • iothread

Steps to reproduce

  1. set up a VM with iothread and io_uring
  2. try to boot and watch it "hang"

Additional information

Here's the relevant command line from the libvirt log:

-blockdev '{"driver":"file","filename":"/mnt/data/VMs/Arch-Linux-x86_64-basic.qcow2","aio":"io_uring","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage","backing":null}' \
-device '{"driver":"virtio-blk-pci","iothread":"iothread1","bus":"pci.4","addr":"0x0","drive":"libvirt-1-format","id":"virtio-disk0","bootindex":1 }' \
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information