LCTL-LIST_PARAM(8)

πŸ“¦ version 2.17.58, in ubuntu stonking

πŸ’… LCTL-LIST_PARAM β€” ok so you wanna list param names, bestie ✨

it's giving "Lustre Configuration Utilities" energy, and yes this is lctl-list_param, straight from the lctl family 🫢


🌸 NAME 🌸

lctl-list_param β€” literally just, list configuration parameter names. that's the whole job. and she eats πŸ’…


✨ SYNOPSIS ✨

lctl list_param [--dshbak|-b] [--color|-c] [--dir-only|-D]
                [--classify|-F] [--links|-l] [--no-links|-L]
                [--merge|-m] [--no-merge|-M] [--module|-o] [--path|-p]
                [--readable|-r] [--recursive|-R] [--tunable|-t]
                [--writeable|-w] PARAM_PATH1 [PARAM_PATH2 ...]

read it twice, it's fine, there's just a lot of flags and honestly every single one of them is serving a purpose πŸ’–


πŸ¦‹ DESCRIPTION πŸ¦‹

List the Lustre or LNet parameter name(s) matching param_search. no cap, that's the vibe. πŸ’«

and plot twist, the parameter name(s) may contain wildcards using glob(3) pathname patterns β€” so you can go feral with your search strings, bestie 🌈


πŸ’– OPTIONS πŸ’–

here's every single option lctl list_param supports, explained with love:

  • -b, --dshbak β€” Aggregate parameters with wildcards whenever a device number appears in the parameter name. and btw, --merge is enabled by default with this option, to merge the simplified names. but if you want the wildcard names without the merging, you specify --no-merge. your call, queen πŸ‘‘
  • -c, --color=auto|always|never β€” Pick one of auto|always|never for when color should get applied. default is auto, which means color only shows up when output is a terminal. so ✨aesthetic✨ but only when it counts πŸ’…
  • -D, --dir-only β€” Only list directories. that's it. directories only. gatekeeping at its finest πŸšͺ
  • -F, --classify β€” Append /, @ or = for dirs, symlinks and writeable files, respectively. little symbol, big information πŸŽ€
  • -l, --links β€” Follow symlinks while searching for parameters. (enabled by default, so she's already on, bestie) πŸ”—
  • -L, --no-links β€” Do not follow symlinks while searching for parameters. opposite day πŸ™ˆ
  • -m, --merge β€” Merge all parameters that have the same name such that only one will be shown. Enabled by default. dupes? gone. periodt πŸ’€
  • -M, --no-merge β€” Do not merge parameters. All parameters will be shown, regardless if they are have the same name or not. Duplicate parameters will be printed in yellow so you can't miss 'em, it's giving highlight reel 🟑
  • -o, --module β€” Include modules params in the parameter search path, meaning that matching module parameters will be shown along side with Lustre parameters. they're all invited to the party πŸŽ‰
  • -p, --path β€” Print the parameter path instead of the parameter name. full filepath, no shortcuts ✨
  • -r, --readable β€” Print only parameters that have read permission. Can be used with [-w|--writable] to print parameters that are both readable and writable. combo meal πŸ“
  • -R, --recursive β€” Recursively list all parameters under the specified parameter search string. If param_search is unspecified, all the parameters will be shown. go deep, bestie 🌊
  • -t, --tunable β€” Print only tunable parameters. This avoids printing directories and all parameters containing any of the following: console|debug_|fail_|force|import|nis|panic_|srpc_sepol|stats|target_obd β€” shoutout to the blocklist, she's doing her job 🧹
  • -w, --writable β€” Print only parameters that have write permission. Can be used with [-r|--readable] to print parameters that are both readable and writable. πŸ‘‘

🌈 BASH COMPLETION 🌈

This command supports bash-completion(1) for tab completion of parameter names available on the local node, with suitable shell and package installation. so if you have the right shell + package setup, it just... works 🧚

This can greatly simplify finding which parameters are available, instead of running lctl-list_param(8) repeatedly. one Tab instead of ten commands, we love efficiency πŸ’…

To list long options (more descriptive and easily understood) type '--TAB', and to list short options type '-TAB'.

friendly reminder: it's the literal text -- then Tab, and - then Tab. don't gatekeep it from your own keyboard 🫢

πŸŽ€ EXAMPLES πŸŽ€

wildcards, go off πŸ’«

Use wildcards to obtain all matching parameters:

# lctl list_param ost.*
ost.OSS
ost.num_refs

file types with -F 🏷️

Show the file type with -F, this can be useful in combination with grep to find certain types of parameters:

# lctl list_param -F ost.* debug
ost.OSS/
ost.num_refs
debug=

full paths with -p πŸ“

Since there are multiple location that hold paramters, use -p to get the full filepath for more efficient use by external mornitoring tools:

# lctl list_param -p ost.*
/sys/fs/lustre/ost/OSS
/sys/fs/lustre/ost/num_refs

recursive with -R 🌳

Search recursively through the directory tree with -R to get the full list of both directories and parameters in the tree:

# lctl list_param -R mdt
mdt
mdt.lustre-MDT0000
mdt.lustre-MDT0000.capa
mdt.lustre-MDT0000.capa_count
mdt.lustre-MDT0000.capa_key_timeout
mdt.lustre-MDT0000.capa_timeout
mdt.lustre-MDT0000.commit_on_sharing
mdt.lustre-MDT0000.evict_client
...

To avoid following symlinks which can lead to duplicate output use --no-links. Note that mgs.MGS.osd is a symlink to ../../ost-ldiskfs/lustre-MDT0000:

# lctl list_param -L -R mgs.MGS
...
mgs.MGS.mgs.timeouts
mgs.MGS.mntdev
mgs.MGS.num_exports
mgs.MGS.uuid
mgs.MGS.filesystems
mgs.MGS.gss
...

Compare this to the same command with --links enabled:

# lctl list_param -l -R mgs.MGS
...
mgs.MGS.mgs.timeouts
mgs.MGS.mntdev
mgs.MGS.num_exports
mgs.MGS.osd
mgs.MGS.osd.auto_scrub
...
mgs.MGS.osd.quota_slave_md.root_prj_enable
mgs.MGS.osd.quota_slave_md.timeout
mgs.MGS.uuid
mgs.MGS.filesystems
mgs.MGS.gss
...

see the difference? -L keeps it chill and shallow, -l goes through the portal πŸŒ€

tunables with -t + -wr πŸ”₯

To get a full list of tunable parameters on the filesystem combine -t with -wr:

# lctl list_param -R -L -t -wr ost.OSS.ost_seq
ost.OSS.ost_seq.high_priority_ratio
ost.OSS.ost_seq.threads_max
ost.OSS.ost_seq.threads_min
ost.OSS.ost_seq.nrs_crrn_quantum
ost.OSS.ost_seq.nrs_delay_max
ost.OSS.ost_seq.nrs_delay_min
ost.OSS.ost_seq.nrs_delay_pct
ost.OSS.ost_seq.nrs_policies
ost.OSS.ost_seq.nrs_tbf_rule
ost.OSS.ost_seq.req_buffer_history_max
ost.OSS.ost_seq.req_buffers_max

merge vs no-merge πŸ‘―

Using --merge will collapse copies of the same parameter if they have the exact same name. Multiple copies are often caused by symlinks pointing to the same directory that has already been searched. To show all parameters:

# lctl list_param -R --no-merge osp.lustre-OST0000-osc-MDT0000
osp.lustre-OST0000-osc-MDT0000
osp.lustre-OST0000-osc-MDT0000 <- symlink
osp.lustre-OST0000-osc-MDT0000.active
osp.lustre-OST0000-osc-MDT0000.active
osp.lustre-OST0000-osc-MDT0000.blocksize
osp.lustre-OST0000-osc-MDT0000.blocksize
...
# lctl list_param -R --merge osp.lustre-OST0000-osc-MDT0000
osp.lustre-OST0000-osc-MDT0000
osp.lustre-OST0000-osc-MDT0000.active
osp.lustre-OST0000-osc-MDT0000.blocksize
osp.lustre-OST0000-osc-MDT0000.create_count
...

dshbak for the collapse 🌸

Use --dshbak will collapse multiple OSTs and MDTs so params are easier to read:

# lctl list_param -R osp.*
osp.lustre-OST0000-osc-MDT0000.active
osp.lustre-OST0000-osc-MDT0000.blocksize
osp.lustre-OST0000-osc-MDT0000.create_count
osp.lustre-OST0000-osc-MDT0000.destroys_in_flight
...
osp.lustre-OST0001-osc-MDT0000.active
osp.lustre-OST0001-osc-MDT0000.blocksize
osp.lustre-OST0001-osc-MDT0000.create_count
osp.lustre-OST0001-osc-MDT0000.destroys_in_flight
...
# lctl list_param -R --dshbak osp.*
osp.lustre-OST*-osc-MDT*.active
osp.lustre-OST*-osc-MDT*.blocksize
osp.lustre-OST*-osc-MDT*.create_count
osp.lustre-OST*-osc-MDT*.destroys_in_flight
...

look at all those wildcards, she's so tidy πŸ’–


πŸ‘‘ AVAILABILITY πŸ‘‘

lctl list_param is part of the lustre(7) filesystem package since release 1.7.0 β€” been iconic since way back, no cap ⭐


🌟 SEE ALSO 🌟


ok that's the whole page bestie, go forth and list_param responsibly πŸ«ΆπŸ’œ

this was the Lustre manual, dated 2026-03-06 β€” slay, mwah, bye βœ¨πŸŽ€

πŸ“¦ where this page comes from