[LU-14859] cancel client DLM locks from the server Created: 16/Jul/21  Updated: 06/Mar/23

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Andreas Dilger Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Related
is related to LU-6529 Server side lock limits to avoid unne... Closed
is related to LU-14858 kernfs tree to dump/traverse ldlm locks Open
Rank (Obsolete): 9223372036854775807

 Description   

Similar to "lctl set_param ldlm.namespaces.*.lru_size=clear" on the client cancelling all of the DLM locks for a particular namespace, it would be useful to be able to cancel some or all of the outstanding DLM locks from the server as well.

Using "lru_size=clear" currently doesn't do anything, because the server doesn't keep any of the shadow locks in the LRU. One reasonable option is to allow lock_count=0 and/or resource_count=0 to cancel all of the locks from the server.

For efficiency, it would be desirable to initially try to cancel the locks in a batch, e.g. sending a single blocking/glimpse callback RPC on a "magic" resource ID like 0:0:0.0 with the number of locks to be cancelled, which would generate one or more ELC cancel RPCs with many DLM locks. I thought that was implemented as part of patch http://review.whamcloud.com/14931 "LU-6529 ldlm: reclaim granted locks defensively", but it appears that patch is just randomly sending out callbacks on specific locks. Afterward, the individual remaining locks would get a callback.


Generated at Sat Feb 10 03:13:24 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.