Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-14144

get and set Lustre module parameters via "lctl get_param/set_param"

Details

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

       

      Attachments

        Issue Links

          Activity

            [LU-14144] get and set Lustre module parameters via "lctl get_param/set_param"
            adilger Andreas Dilger added a comment - - edited

            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).

            adilger Andreas Dilger added a comment - - edited 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).

            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.

            nrutman Nathan Rutman added a comment - 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.

            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.

            adilger Andreas Dilger added a comment - 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.

            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".

            adilger Andreas Dilger added a comment - 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" .

            People

              wc-triage WC Triage
              yujian Jian Yu
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated: