Re: [PATCH dlm/next 8/8] md-cluster: use DLM_LSFL_SOFTIRQ for dlm_new_lockspace()
From: Heming Zhao <hidden>
Date: 2024-06-06 02:48:06
Also in:
gfs2
On 6/6/24 02:54, Alexander Aring wrote:
Hi, On Mon, Jun 3, 2024 at 5:56 PM Alexander Aring [off-list ref] wrote:quoted
Recently the DLM subsystem introduced the flag DLM_LSFL_SOFTIRQ for dlm_new_lockspace() to signal the capability to handle DLM ast/bast callbacks in softirq context to avoid an additional context switch due the DLM callback workqueue. The md-cluster implementation only does synchronized calls above the async DLM API. That synchronized API should may be also offered by DLM, however it is very simple as md-cluster callbacks only does a complete() call for their wait_for_completion() wait that is occurred after the async DLM API call. This patch activates the recently introduced DLM_LSFL_SOFTIRQ flag that allows that the DLM callbacks are executed in a softirq context that md-cluster can handle. It is reducing a unnecessary context workqueue switch and should speed up DLM in some circumstance.Can somebody with a md-cluster environment test it as well? All I was doing was (with a working dlm_controld cluster env): mdadm --create /dev/md0 --bitmap=clustered --metadata=1.2 --raid-devices=2 --level=mirror /dev/sda /dev/sdb sda and sdb are shared block devices on each node. Create a /etc/mdadm.conf with the content mostly out of: mdadm --detail --scan on each node. Then call mdadm --assemble on all nodes where not "mdadm --create ..." happened. I hope that is the right thing to do and I had with "dlm_tool ls" a UUID as a lockspace name with some md-cluster locks being around.
The above setup method is correct. SUSE doc [1] provides more details on assembling the clustered array. [1]: https://documentation.suse.com/fr-fr/sle-ha/15-SP5/html/SLE-HA-all/cha-ha-cluster-md.html#sec-ha-cluster-md-create
To bring this new flag upstream, would it be okay to get this through dlm-tree? I am requesting here for an "Acked-by" tag from the md maintainers.
I compiled & tested the dlm-tree [2] with SUSE CI env, and didn't see these patches introduce new issue. [2]: https://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm.git/log/?h=next Thanks, Heming