[pve-devel] [PATCH manager v3 0/6] fix #5430: ocfs2 io_uring read write

Daniel Kral d.kral at proxmox.com
Wed Oct 23 14:37:16 CEST 2024


Since around Linux kernel version 6.7 [0], and as reported by users
kernel version `6.8.4-2-pve`, a bug was introduced by a refactoring of
the io_read function in the io_uring subsystem. This causes any VM to
fail to start, when io_uring is used for CDROM drives (including
CloudInit drives) and VM disks (even though I could not reproduce the
latter).

The patch series contains the following changes:

1. refactor code for the upcoming changes (#1-#3),
2. allow changes to aio/cache options for CDROMs in the GUI (#4),
3. allow changes to aio/cache options for CloudInit in the GUI (#5-6).

The last two UI changes are an optional part that was discussed off-list
as a solution before I knew about the kernel patch and I would still
propose it as a useful set of changes.

These changes allow users to change the cache and async I/O options for
both CDROM and CloudInit drives. These changes are not necessary for the
whole patch series and can be applied separately, or dropped.

discussion
===

Since the kernel patch has already been applied to pve-kernel, the UI
changes might not be needed anymore, but could very well be an
additional solution (for this or other use cases).

Another discussion to this patch series - as Shannon and Fabian have
mentioned to me off-list - was if there are actual benefits for CDROM
and CloudInit drives to be read with io_uring enabled. If not, we could
remove the io_uring default from CDROMs and CloudInit drives in
config_to_command in qemu-server.

history
===

Differences to v1 (thanks to @Lukas for the style review):
- Remove the applied pve-kernel patch from the series
- Move refactoring in pve-manager to their own separate patches
- Use let instead of var (also in existing code for consistency, as
  no variable was dependent on its scope)
- Rename variables whose names were too unclear
- Change "widget.AsyncIOTypeSelector" to "widget.pveAsyncIoTypeSelector"
- Include a reason why the CDEdit modal width has been changed in the
  commit's message
- Adapt cover letter to refer only to the UI changes

Differences to v2:
- Fix references to AsyncIOTypeSelector, which could not be found at
  runtime and would make edit modals unavailable for CD/HDD/CI drives

Daniel Kral (6):
  ui: vm: change var to let in CDROM and CloudInit edit modals
  ui: vm: improve code readability of CDROM and CloudInit edit modals
  ui: vm: factor out async I/O type selector
  fix #5430: ui: vm: allow editing cdrom aio and cache options
  ui: vm: make cloudinit drive editable
  fix #5430: ui: vm: allow editing cloudinit aio and cache options

 www/manager6/Makefile                    |   1 +
 www/manager6/form/AsyncIOTypeSelector.js |  10 ++
 www/manager6/qemu/CDEdit.js              |  76 +++++++++----
 www/manager6/qemu/CIDriveEdit.js         | 131 +++++++++++++++++------
 www/manager6/qemu/HDEdit.js              |  10 +-
 www/manager6/qemu/HardwareView.js        |   4 +-
 6 files changed, 169 insertions(+), 63 deletions(-)
 create mode 100644 www/manager6/form/AsyncIOTypeSelector.js

-- 
2.39.5





More information about the pve-devel mailing list