[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 03/12] aio: make aio_context_acquire()/aio_context_release()
|
From: |
Eric Blake |
|
Subject: |
Re: [PATCH 03/12] aio: make aio_context_acquire()/aio_context_release() a no-op |
|
Date: |
Thu, 30 Nov 2023 12:10:16 -0600 |
|
User-agent: |
NeoMutt/20231103 |
On Wed, Nov 29, 2023 at 02:55:44PM -0500, Stefan Hajnoczi wrote:
> aio_context_acquire()/aio_context_release() has been replaced by
> fine-grained locking to protect state shared by multiple threads. The
> AioContext lock still plays the role of balancing locking in
> AIO_WAIT_WHILE() and many functions in QEMU either require that the
> AioContext lock is held or not held for this reason. In other words, the
> AioContext lock is purely there for consistency with itself and serves
> no real purpose anymore.
>
> Stop actually acquiring/releasing the lock in
> aio_context_acquire()/aio_context_release() so that subsequent patches
> can remove callers across the codebase incrementally.
>
> I have performed "make check" and qemu-iotests stress tests across
> x86-64, ppc64le, and aarch64 to confirm that there are no failures as a
> result of eliminating the lock.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> util/async.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/util/async.c b/util/async.c
> index 8f90ddc304..04ee83d220 100644
> --- a/util/async.c
> +++ b/util/async.c
> @@ -725,12 +725,12 @@ void aio_context_unref(AioContext *ctx)
>
> void aio_context_acquire(AioContext *ctx)
> {
> - qemu_rec_mutex_lock(&ctx->lock);
> + /* TODO remove this function */
> }
>
> void aio_context_release(AioContext *ctx)
> {
> - qemu_rec_mutex_unlock(&ctx->lock);
> + /* TODO remove this function */
> }
>
> QEMU_DEFINE_STATIC_CO_TLS(AioContext *, my_aiocontext)
> --
> 2.42.0
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization: qemu.org | libguestfs.org
- [PATCH 00/12] aio: remove AioContext lock, Stefan Hajnoczi, 2023/11/29
- [PATCH 01/12] virtio-scsi: replace AioContext lock with tmf_bh_lock, Stefan Hajnoczi, 2023/11/29
- [PATCH 02/12] tests: remove aio_context_acquire() tests, Stefan Hajnoczi, 2023/11/29
- [PATCH 03/12] aio: make aio_context_acquire()/aio_context_release() a no-op, Stefan Hajnoczi, 2023/11/29
- Re: [PATCH 03/12] aio: make aio_context_acquire()/aio_context_release() a no-op,
Eric Blake <=
- [PATCH 04/12] graph-lock: remove AioContext locking, Stefan Hajnoczi, 2023/11/29
- [PATCH 06/12] scsi: remove AioContext locking, Stefan Hajnoczi, 2023/11/29
- [PATCH 07/12] aio-wait: draw equivalence between AIO_WAIT_WHILE() and AIO_WAIT_WHILE_UNLOCKED(), Stefan Hajnoczi, 2023/11/29
- [PATCH 08/12] aio: remove aio_context_acquire()/aio_context_release() API, Stefan Hajnoczi, 2023/11/29
- [PATCH 05/12] block: remove AioContext locking, Stefan Hajnoczi, 2023/11/29