Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
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.