virtio-blk: add iothread-vq-mapping parameter
Merge Request Required Information
Summary of Changes
Jira: https://issues.redhat.com/browse/RHEL-20764
Jira: https://issues.redhat.com/browse/RHEL-17369
Jira: https://issues.redhat.com/browse/RHEL-7356
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=58547412
Upstream status: merged
This backport adds the new --device virtio-blk-pci,iothread-vq-mapping=
parameter so that multiple IOThreads can process virtio-blk virtqueues. This feature solves the single IOThread performance bottleneck in QEMU's virtio-blk device.
The backport includes several fixes that were developed upstream, some by Kevin Wolf, for issues discovered by QE in the original iothread-vq-mapping patches. Some of the test fixes are mainly for the upstream CI and may not be strictly necessary downstream since we don't run the GitLab CI test suite. Nevertheless, it's easier to backport now than to hit issues in the future and have to search for the missing pieces.
I backported Stefan Weil's recent virtio_blk_data_plane_destroy()
fix to avoid context conflicts in the backport. It's not directly related to this feature but is tint. It's simpler to backport it than to have a conflict.
Signed-off-by: Stefan Hajnoczi stefanha@redhat.com
Approved Development Ticket
All submissions to CentOS Stream must reference an approved ticket in Red Hat Jira. Please follow the CentOS Stream contribution documentation for how to file this ticket and have it approved.