[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/4] scsi: eliminate AioContext lock
|
From: |
Stefan Hajnoczi |
|
Subject: |
[PATCH 0/4] scsi: eliminate AioContext lock |
|
Date: |
Thu, 23 Nov 2023 14:49:27 -0500 |
The SCSI subsystem uses the AioContext lock to protect internal state. This is
necessary because the main loop and the IOThread can access SCSI state in
parallel. This inter-thread access happens during scsi_device_purge_requests()
and scsi_dma_restart_cb().
This patch series modifies the code so SCSI state is only accessed from the
IOThread that is executing requests. Once this has been achieved the AioContext
lock is no longer necessary.
Note that a few aio_context_acquire()/aio_context_release() calls still remain
after this series. They surround API calls that invoke AIO_WAIT_WHILE() and
therefore still rely on the AioContext lock for now.
Stefan Hajnoczi (4):
scsi: only access SCSIDevice->requests from one thread
virtio-scsi: don't lock AioContext around
virtio_queue_aio_attach_host_notifier()
scsi: don't lock AioContext in I/O code path
dma-helpers: don't lock AioContext in dma_blk_cb()
include/hw/scsi/scsi.h | 7 +-
hw/scsi/scsi-bus.c | 174 ++++++++++++++++++++++----------
hw/scsi/scsi-disk.c | 23 -----
hw/scsi/scsi-generic.c | 20 +---
hw/scsi/virtio-scsi-dataplane.c | 8 +-
system/dma-helpers.c | 7 +-
6 files changed, 130 insertions(+), 109 deletions(-)
--
2.42.0
- [PATCH 0/4] scsi: eliminate AioContext lock,
Stefan Hajnoczi <=
- [PATCH 1/4] scsi: only access SCSIDevice->requests from one thread, Stefan Hajnoczi, 2023/11/23
- [PATCH 2/4] virtio-scsi: don't lock AioContext around virtio_queue_aio_attach_host_notifier(), Stefan Hajnoczi, 2023/11/23
- [PATCH 3/4] scsi: don't lock AioContext in I/O code path, Stefan Hajnoczi, 2023/11/23
- [PATCH 4/4] dma-helpers: don't lock AioContext in dma_blk_cb(), Stefan Hajnoczi, 2023/11/23
- Re: [PATCH 0/4] scsi: eliminate AioContext lock, Stefan Hajnoczi, 2023/11/23