[LU-14144] get and set Lustre module parameters via "lctl get_param/set_param" Created: 20/Nov/20  Updated: 15/Dec/23

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

Type: Improvement Priority: Minor
Reporter: Jian Yu Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Related
is related to LU-5319 Support multiple slots per client in ... Resolved
is related to LU-13503 allow setting larger max_mod_rpcs_in_... Resolved
is related to LU-16454 can't set max_mod_rpcs_in_flight > 8 Resolved
Rank (Obsolete): 9223372036854775807

 Description   

A patch is needed to allow using "lctl set_param [-P] mdt.*.max_mod_rpcs_per_client=N" and other module parameters via the normal Lustre parameter interface. It doesn't make sense that this is only available as a module parameter.

 



 Comments   
Comment by Andreas Dilger [ 26/Mar/21 ]

It would also be possible to implement this with a symlink to the module parameter /sys/module/mdt/parameters/max_mod_rpcs_in_flight, similar to lnet_debugfs_symlinks does for debug_mb->"../../../module/libcfs/parameters/libcfs_debug_mb".

Comment by Andreas Dilger [ 04/Nov/21 ]

It also isn't clear why this parameter is limited by the MDT? AFAICS from the code, there doesn't appear to be any server-side limitation on the number of request slots used by a client, but I haven't done an exhaustive analysis.

Comment by Nathan Rutman [ 24/Jun/22 ]

It also isn't clear why this parameter is limited by the MDT? AFAICS from the code, there doesn't appear to be any server-side limitation on the number of request slots used by a client

The MDT side limit defines the maximum of the client max_mod_rpcs_in_flight. It is useful to have a max set server-side to prevent abuse by greedy clients.

Comment by Andreas Dilger [ 24/Jun/22 ]

It would also be possible to implement this with a symlink to the module parameter /sys/module/mdt/parameters/max_mod_rpcs_in_flight, similar to "lnet_debugfs_symlinks does for debug_mb->../../../module/libcfs/parameters/libcfs_debug_mb".

An alternate, and maybe preferable, solution would be to have "lctl get_param/set_param" look at "/sys/modules/<obd>/parameters/<param>" for parameters of the form "<obd>.<param>", which would immediately make all of the module parameters available for tuning via "lctl set_param -P".

The MDT side limit defines the maximum of the client max_mod_rpcs_in_flight. It is useful to have a max set server-side to prevent abuse by greedy clients.

Sure. My main question is whether there are technical limitations (e.g. the number of slots in the last_rcvd or reply_data is hard-coded at mount time) that prevent this parameter from being changed at mount time on the MDS and/or allow clients to have different values (e.g. if the MDS value is updated, new clients mount and get new limit, but currently-mounted clients have old limit).

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