linux/fs/dlm
Alexander Aring 94e180d625 dlm: async freeing of lockspace resources
This patch handles freeing of lockspace resources asynchronously besides
the release_lockspace() context. The release_lockspace() context is
sometimes called in a time critical context, e.g. umount syscall. Most
every user space init system will timeout if it takes too long. To
reduce the potential waiting time we deregister in release_lockspace()
the lockspace from the DLM subsystem and do the actual releasing of
lockspace resource in a worker of a workqueue following recommendation
of:

https://lore.kernel.org/all/49925af7-78a8-a3dd-bce6-cfc02e1a9236@I-love.SAKURA.ne.jp/T/#u

as flushing of system workqueues are not allowed. The most time to
release the DLM resources are spent to release the data structures
"ls->ls_lkbxa" and "ls->ls_rsbtbl" as they iterate over each entries and
those data structures can contain millions of entries. This patch handles
for now only freeing of those data structures as those operations are
the most reason why release_lockspace() blocking of being returned.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
2024-08-08 15:15:08 -05:00
..
ast.c dlm: implement LSFL_SOFTIRQ_SAFE 2024-06-11 13:13:00 -05:00
ast.h dlm: implement LSFL_SOFTIRQ_SAFE 2024-06-11 13:13:00 -05:00
config.c dlm: never return invalid nodeid by dlm_our_nodeid() 2024-08-08 15:15:07 -05:00
config.h dlm: switch to use rhashtable for rsbs 2024-04-16 14:34:39 -05:00
debug_fs.c dlm: change list and timer names 2024-06-10 15:11:46 -05:00
dir.c dlm: use rwlock for rsb hash table 2024-04-16 14:45:31 -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: async freeing of lockspace resources 2024-08-08 15:15:08 -05:00
Kconfig fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
lock.c dlm: warn about invalid nodeid comparsions 2024-08-08 15:15:07 -05:00
lock.h dlm: warn about invalid nodeid comparsions 2024-08-08 15:15:07 -05:00
lockspace.c dlm: async freeing of lockspace resources 2024-08-08 15:15:08 -05:00
lockspace.h fs: dlm: revert check required context while close 2023-06-14 10:17:33 -05:00
lowcomms.c fs: dlm: remove unused struct 'dlm_processed_nodes' 2024-06-12 15:50:29 -05:00
lowcomms.h dlm: remove unused parameter in dlm_midcomms_addr 2024-05-31 11:04:54 -05:00
lvb_table.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
main.c dlm: async freeing of lockspace resources 2024-08-08 15:15:08 -05:00
Makefile fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
member.c dlm: warn about invalid nodeid comparsions 2024-08-08 15:15:07 -05:00
member.h fs: dlm: constify receive buffer 2023-08-10 10:33:03 -05:00
memory.c dlm: cleanup memory allocation helpers 2024-08-08 15:14:41 -05:00
memory.h dlm: cleanup memory allocation helpers 2024-08-08 15:14:41 -05:00
midcomms.c dlm: remove unused parameter in dlm_midcomms_addr 2024-05-31 11:04:54 -05:00
midcomms.h dlm: remove unused parameter in dlm_midcomms_addr 2024-05-31 11:04:54 -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: warn about invalid nodeid comparsions 2024-08-08 15:15:07 -05:00
recover.h dlm: change list and timer names 2024-06-10 15:11:46 -05:00
recoverd.c dlm: change list and timer names 2024-06-10 15:11:46 -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: implement LSFL_SOFTIRQ_SAFE 2024-06-11 13:13:00 -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