[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: |
|
||||||||||||||||
| 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 ] |
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 ] |
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".
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). |