Message ID | 20231205182011.1976568-1-stefanha@redhat.com |
---|---|
Headers | show |
Series | aio: remove AioContext lock | expand |
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