This is a rebase of patches that Rich Jones first posted in 2023: https://lists.gnu.org/archive/html/qemu-devel/2023-03/msg03320.html
I'm still leaving the series in an RFC state while I'm trying to improve the code to better play with all of the multi-queue changes in the block layer in the meantime. In my own testing, the patches as presented here are not making any noticeable difference in qemu-img convert to a local destination file (multi-conn=1 was not much different than multi-conn=4, although I did validate that multiple sockets were in use and the round robin code was working). Other benchmarks did show improvements, such as qemu convert targeting an nbdkit server on a curl backend getting a 20% boost when I ramped multi-conn from 1 to 4. I have more patches on top of these to post to the list once I can get benchmark numbers that make more sense. Richard W.M. Jones (4): nbd: Add multi-conn option nbd: Split out block device state from underlying NBD connections nbd: Open multiple NBD connections if multi-conn is set nbd: Enable multi-conn using round-robin qapi/block-core.json | 8 +- block/coroutines.h | 5 +- block/nbd.c | 796 +++++++++++++++++++++++++------------------ 3 files changed, 479 insertions(+), 330 deletions(-) -- 2.49.0