[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/8] virtio-blk: remove AioContext lock
From: |
Stefan Hajnoczi |
Subject: |
[PATCH 0/8] virtio-blk: remove AioContext lock |
Date: |
Tue, 8 Nov 2022 16:19:22 -0500 |
This is a continuation of Emanuele Esposito's work to remove the AioContext
lock in virtio-blk. In the past it was necessary to acquire the AioContext lock
in order to do I/O. Paolo Bonzini and Emanuele have removed the need for the
AioContext in the core block layer code, with a few exceptions like blk_drain()
and blk_set_aio_context().
This patch series annotates virtio-blk functions with
IO_CODE()/GLOBAL_STATE_CODE() so it's clear in which context they are called.
It also removes unnecessary AioContext locks.
The end result is that virtio-blk rarely takes the AioContext lock. Future
patch series will add support for multiple IOThreads so that true multi-queue
can be achieved, but right now virtio-blk still has unprotected shared state
like s->rq so that needs to wait for another day.
Based-on: <20221102182337.252202-1-stefanha@redhat.com>
Emanuele Giuseppe Esposito (6):
virtio_queue_aio_attach_host_notifier: remove AioContext lock
block-backend: enable_write_cache should be atomic
virtio: categorize callbacks in GS
virtio-blk: mark GLOBAL_STATE_CODE functions
virtio-blk: mark IO_CODE functions
virtio-blk: remove unnecessary AioContext lock from function already
safe
Stefan Hajnoczi (2):
virtio-blk: don't acquire AioContext in virtio_blk_handle_vq()
virtio-blk: minimize virtio_blk_reset() AioContext lock region
include/block/aio-wait.h | 4 +-
block/block-backend.c | 6 +--
hw/block/dataplane/virtio-blk.c | 18 +++++--
hw/block/virtio-blk.c | 92 ++++++++++++++++++++++++---------
hw/scsi/virtio-scsi-dataplane.c | 10 ++--
hw/virtio/virtio-bus.c | 5 ++
hw/virtio/virtio-pci.c | 2 +
hw/virtio/virtio.c | 8 +++
util/aio-wait.c | 2 +-
9 files changed, 106 insertions(+), 41 deletions(-)
--
2.38.1
- [PATCH 0/8] virtio-blk: remove AioContext lock,
Stefan Hajnoczi <=
- [PATCH 2/8] block-backend: enable_write_cache should be atomic, Stefan Hajnoczi, 2022/11/08
- [PATCH 1/8] virtio_queue_aio_attach_host_notifier: remove AioContext lock, Stefan Hajnoczi, 2022/11/08
- [PATCH 3/8] virtio: categorize callbacks in GS, Stefan Hajnoczi, 2022/11/08
- [PATCH 4/8] virtio-blk: mark GLOBAL_STATE_CODE functions, Stefan Hajnoczi, 2022/11/08
- [PATCH 5/8] virtio-blk: mark IO_CODE functions, Stefan Hajnoczi, 2022/11/08