qemu/hw/scsi
Stefan Hajnoczi ed18b1ed4f virtio-scsi: replace AioContext lock with tmf_bh_lock
Protect the Task Management Function BH state with a lock. The TMF BH
runs in the main loop thread. An IOThread might process a TMF at the
same time as the TMF BH is running. Therefore tmf_bh_list and tmf_bh
must be protected by a lock.

Run TMF request completion in the IOThread using aio_wait_bh_oneshot().
This avoids more locking to protect the virtqueue and SCSI layer state.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231205182011.1976568-2-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2023-12-21 22:49:27 +01:00
..
emulation.c scsi-generic: avoid invalid access to struct when emulating block limits 2018-11-06 21:35:06 +01:00
esp-pci.c bulk: Remove pointless QOM casts 2023-06-05 20:48:34 +02:00
esp.c esp: restrict non-DMA transfer length to that of available data 2023-10-03 10:29:39 +02:00
Kconfig hw/scsi: Introduce VHOST_SCSI_COMMON symbol in Kconfig 2023-06-23 02:54:44 -04:00
lsi53c895a.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
megasas.c hw/scsi/megasas: Silent GCC duplicated-cond warning 2023-06-13 11:28:58 +02:00
meson.build hw/virtio: Build various target-agnostic objects just once 2023-06-23 02:54:44 -04:00
mfi.h hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
mpi.h hw: Add support for LSI SAS1068 (mptsas) device 2016-02-09 15:45:26 +01:00
mptconfig.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
mptendian.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
mptsas.c mptsas: avoid shadowed local variables 2023-09-25 18:25:03 +02:00
mptsas.h include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
scsi-bus.c scsi: only access SCSIDevice->requests from one thread 2023-12-21 22:49:27 +01:00
scsi-disk.c scsi: don't lock AioContext in I/O code path 2023-12-21 22:49:27 +01:00
scsi-generic.c scsi: don't lock AioContext in I/O code path 2023-12-21 22:49:27 +01:00
spapr_vscsi.c scsi: Use device_cold_reset() and bus_cold_reset() 2022-10-18 13:58:04 +02:00
srp.h spapr-vscsi: add task management 2013-09-12 08:46:21 +02:00
trace-events virtio-scsi: implement BlockDevOps->drained_begin() 2023-05-30 17:32:02 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-scsi-common.c vhost-user-scsi: support reconnect to backend 2023-10-22 05:18:17 -04:00
vhost-scsi.c cpr: relax vhost migration blockers 2023-11-01 16:13:59 +01:00
vhost-user-scsi.c vhost-user-scsi: free the inflight area when reset 2023-12-02 15:56:49 -05:00
viosrp.h Updated the FSF address to <https://www.gnu.org/licenses/> 2023-02-27 09:15:39 +01:00
virtio-scsi-dataplane.c virtio-scsi: don't lock AioContext around virtio_queue_aio_attach_host_notifier() 2023-12-21 22:49:27 +01:00
virtio-scsi.c virtio-scsi: replace AioContext lock with tmf_bh_lock 2023-12-21 22:49:27 +01:00
vmw_pvscsi.c hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-04-28 11:31:54 +02:00
vmw_pvscsi.h scsi: VMWare PVSCSI paravirtual device implementation 2013-04-19 10:44:17 +02:00