qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 00/14] aio: remove AioContext lock


From: Kevin Wolf
Subject: Re: [PATCH v2 00/14] aio: remove AioContext lock
Date: Tue, 19 Dec 2023 14:03:21 +0100

Am 05.12.2023 um 19:19 hat Stefan Hajnoczi geschrieben:
> v2:
> - Add Patch 2 "scsi: assert that callbacks run in the correct AioContext" 
> [Kevin]
> - Add Patch 7 "block: remove bdrv_co_lock()" [Eric and Kevin]
> - Remove stray goto label in Patch 8 [Kevin]
> - Fix "eeked" -> "eked" typo in Patch 10 [Eric]
> 
> This series removes the AioContext locking APIs from QEMU.
> aio_context_acquire() and aio_context_release() are currently only needed to
> support the locking discipline required by AIO_POLL_WHILE() (except for a 
> stray
> user that I converted in Patch 1). AIO_POLL_WHILE() doesn't really need the
> AioContext lock anymore, so it's possible to remove the API. This is a nice
> simplification because the AioContext locking rules were sometimes tricky or
> underspecified, leading to many bugs of the years.
> 
> This patch series removes these APIs across the codebase and cleans up the
> documentation/comments that refers to them.
> 
> Patch 1 is a AioContext lock user I forgot to convert in my earlier SCSI
> conversion series.
> 
> Patch 2 adds an assertion to the SCSI code to ensure that callbacks are 
> invoked
> in the correct AioContext.
> 
> Patch 3 removes tests for the AioContext lock because they will no longer be
> needed when the lock is gone.
> 
> Patches 4-10 remove the AioContext lock. These can be reviewed by categorizing
> the call sites into 1. places that take the lock because they call an API that
> requires the lock (ultimately AIO_POLL_WHILE()) and 2. places that take the
> lock to protect state. There should be no instances of case 2 left. If you see
> one, you've found a bug in this patch series!
> 
> Patches 11-14 remove comments.

Thanks, applied to the block branch.

Kevin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]