linux/fs/dlm
Alexander Aring b1f2381c1a dlm: drop dlm_scand kthread and use timers
Currently the scand kthread acts like a garbage collection for expired
rsbs on toss list, to clean them up after a certain timeout. It triggers
every couple of seconds and iterates over the toss list while holding
ls_rsbtbl_lock for the whole hash bucket iteration.

To reduce the amount of time holding ls_rsbtbl_lock, we now handle the
disposal of expired rsbs using a per-lockspace timer that expires for the
earliest tossed rsb on the lockspace toss queue. This toss queue is
ordered according to the rsb res_toss_time with the earliest tossed rsb
as the first entry. The toss timer will only trylock() necessary locks,
since it is low priority garbage collection, and will rearm the timer
if trylock() fails. If the timer function does not find any expired
rsb's, it rearms the timer with the next earliest expired rsb.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
2024-04-16 14:40:27 -05:00
..
ast.c dlm: use spin_lock_bh for message processing 2024-04-09 11:45:23 -05:00
ast.h dlm: remove callback reference counting 2024-04-01 13:31:13 -05:00
config.c dlm: switch to use rhashtable for rsbs 2024-04-16 14:34:39 -05:00
config.h dlm: switch to use rhashtable for rsbs 2024-04-16 14:34:39 -05:00
debug_fs.c dlm: add rsb lists for iteration 2024-04-16 14:33:25 -05:00
dir.c dlm: switch to use rhashtable for rsbs 2024-04-16 14:34:39 -05:00
dir.h dlm: move rsb root_list to ls_recover() stack 2024-04-09 11:44:49 -05:00
dlm_internal.h dlm: drop dlm_scand kthread and use timers 2024-04-16 14:40:27 -05:00
Kconfig fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
lock.c dlm: drop dlm_scand kthread and use timers 2024-04-16 14:40:27 -05:00
lock.h dlm: drop dlm_scand kthread and use timers 2024-04-16 14:40:27 -05:00
lockspace.c dlm: drop dlm_scand kthread and use timers 2024-04-16 14:40:27 -05:00
lockspace.h fs: dlm: revert check required context while close 2023-06-14 10:17:33 -05:00
lowcomms.c dlm: do message processing in softirq context 2024-04-09 11:47:51 -05:00
lowcomms.h dlm: remove allocation parameter in msg allocation 2024-04-09 09:58:14 -05:00
lvb_table.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
main.c fs: dlm: unregister memory at the very last 2023-06-14 10:17:33 -05:00
Makefile fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
member.c dlm: drop dlm_scand kthread and use timers 2024-04-16 14:40:27 -05:00
member.h fs: dlm: constify receive buffer 2023-08-10 10:33:03 -05:00
memory.c dlm: switch to GFP_ATOMIC in dlm allocations 2024-04-09 11:43:49 -05:00
memory.h dlm: remove allocation parameter in msg allocation 2024-04-09 09:58:14 -05:00
midcomms.c dlm: use spin_lock_bh for message processing 2024-04-09 11:45:23 -05:00
midcomms.h dlm: remove allocation parameter in msg allocation 2024-04-09 09:58:14 -05:00
plock.c dlm: adapt to breakup of struct file_lock 2024-02-05 13:11:42 +01:00
rcom.c dlm: use spin_lock_bh for message processing 2024-04-09 11:45:23 -05:00
rcom.h fs: dlm: constify receive buffer 2023-08-10 10:33:03 -05:00
recover.c dlm: drop dlm_scand kthread and use timers 2024-04-16 14:40:27 -05:00
recover.h dlm: move rsb root_list to ls_recover() stack 2024-04-09 11:44:49 -05:00
recoverd.c dlm: drop dlm_scand kthread and use timers 2024-04-16 14:40:27 -05:00
recoverd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
requestqueue.c dlm: use spin_lock_bh for message processing 2024-04-09 11:45:23 -05:00
requestqueue.h fs: dlm: constify receive buffer 2023-08-10 10:33:03 -05:00
user.c dlm: use spin_lock_bh for message processing 2024-04-09 11:45:23 -05:00
user.h fs: dlm: move dlm_purge_lkb_callbacks to user module 2023-06-14 10:17:33 -05:00
util.c dlm: use __le types for dlm messages 2022-04-06 14:02:37 -05:00
util.h dlm: use __le types for dlm messages 2022-04-06 14:02:37 -05:00