On Thu, Nov 23, 2023 at 02:49:28PM -0500, Stefan Hajnoczi wrote: > Stop depending on the AioContext lock and instead access > SCSIDevice->requests from only one thread at a time: > - When the VM is running only the BlockBackend's AioContext may access > the requests list. > - When the VM is stopped only the main loop may access the requests > list. > > These constraints protect the requests list without the need for locking > in the I/O code path. > > Note that multiple IOThreads are not supported yet because the code > assumes all SCSIRequests are executed from a single AioContext. Leave > that as future work. > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > --- > include/hw/scsi/scsi.h | 7 +- > hw/scsi/scsi-bus.c | 174 ++++++++++++++++++++++++++++------------- > 2 files changed, 124 insertions(+), 57 deletions(-) >
Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. Virtualization: qemu.org | libguestfs.org