diff options
| author | Andreas Gruenbacher <agruenba@redhat.com> | 2026-08-30 16:36:37 +0200 |
|---|---|---|
| committer | Andreas Gruenbacher <agruenba@redhat.com> | 2026-09-11 15:08:23 +0200 |
| commit | a098f26d3b80e99740ea155a7012008d12a46010 (patch) | |
| tree | 91dbb6d09d4446ed67708d168ed165fa0a066ca8 /tools/lib/python | |
| parent | 33ed0a0567e0abe66ea65e89dad2e35082890fbe (diff) | |
| download | linux-next-a098f26d3b80e99740ea155a7012008d12a46010.tar.gz linux-next-a098f26d3b80e99740ea155a7012008d12a46010.zip | |
gfs2: Get rid of sd_async_glock_wait
Get rid of the per-superblock wait queue for asynchronous locking
requests. Instead, wait for the specific events we are interested in.
Use multiple wait queue entries when waiting for multiple events at
once.
Without this patch, the per-superblock wait queue for asynchronous
locking requests can become a bottleneck when many inodes are deleted
remotely: in that case, we schedule delayed work with
gfs2_queue_verify_delete(). When that work later runs, we end up in
delete_work_func() -> iput() -> gfs2_evict_inode() ->
gfs2_upgrade_iopen_glock(), which uses asynchronous locking. Each
completing locking asynchronous request will wake up
sdp->sd_async_glock_wait, and all the waiters will compete with each
other and waste resources. Avoid that by eliminating the per-superblock
wait queue.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
