diff options
| author | Stefan Hajnoczi <stefanha@redhat.com> | 2023-05-16 15:02:36 -0400 |
|---|---|---|
| committer | Kevin Wolf <kwolf@redhat.com> | 2023-05-30 17:32:02 +0200 |
| commit | 766aa2de0f29b657148e04599320d771c36fd126 (patch) | |
| tree | 911117223771a1574c5a17b938f9beb840aac943 /util/qemu-coroutine-io.c | |
| parent | 1665d9326fd2dd97f1f4061decd67702956ec53c (diff) | |
| download | focaccia-qemu-766aa2de0f29b657148e04599320d771c36fd126.tar.gz focaccia-qemu-766aa2de0f29b657148e04599320d771c36fd126.zip | |
virtio-scsi: implement BlockDevOps->drained_begin()
The virtio-scsi Host Bus Adapter provides access to devices on a SCSI bus. Those SCSI devices typically have a BlockBackend. When the BlockBackend enters a drained section, the SCSI device must temporarily stop submitting new I/O requests. Implement this behavior by temporarily stopping virtio-scsi virtqueue processing when one of the SCSI devices enters a drained section. The new scsi_device_drained_begin() API allows scsi-disk to message the virtio-scsi HBA. scsi_device_drained_begin() uses a drain counter so that multiple SCSI devices can have overlapping drained sections. The HBA only sees one pair of .drained_begin/end() calls. After this commit, virtio-scsi no longer depends on hw/virtio's ioeventfd aio_set_event_notifier(is_external=true). This commit is a step towards removing the aio_disable_external() API. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20230516190238.8401-19-stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'util/qemu-coroutine-io.c')
0 files changed, 0 insertions, 0 deletions