Message ID | 20220629141538.3400679-1-eesposit@redhat.com |
---|---|
Headers | show |
Series | job: replace AioContext lock with job_mutex | expand |
On Wed, Jun 29, 2022 at 10:15:18AM -0400, Emanuele Giuseppe Esposito wrote: > 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). > > --- > v8: > * reorganize patch ordering according with Vladimir proposal > * minor nitpicks I have posted some comments but I didn't spot any major issues. Stefan