Message ID | 20220926093214.506243-1-eesposit@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | job: replace AioContext lock with job_mutex | expand |
Am 26.09.2022 um 11:31 hat Emanuele Giuseppe Esposito geschrieben: > In this series, we want to remove the AioContext lock and instead > use the already existent job_mutex to protect the job structures > and list. This is part of the work to get rid of AioContext lock > usage in favour of smaller granularity locks. > > In order to simplify reviewer's job, job lock/unlock functions and > macros are added as empty prototypes (nop) in patch 1. > They are converted to use the actual job mutex only in the last > patch. In this way we can freely create locking sections > without worrying about deadlocks with the aiocontext lock. > > Patch 2 defines what fields in the job structure need protection. > Patches 3-6 are in preparation to the job locks, moving functions > from global to static and introducing helpers. > > Patch 7-9 introduce the (nop) job lock into the job API and > its users, and patches 10-13 categorize respectively locked and > unlocked functions in the job API. > > Patches 14-17 take care of protecting job->aio_context, and > finally patch 18 makes the prototypes in patch 1 use the > job_mutex and removes all aiocontext lock at the same time. > > Tested this series by running unit tests, qemu-iotests and qtests > (x86_64). Since there only seems to be the one problem in patch 16, I'm taking the liberty to fix up the type of iostatus (bool -> BlockDeviceIoStatus) myself. Thanks, applied to the block branch. Kevin