LCTL-LIST_PARAM(8)

NAME
lctl-list_param - list configuration parameter names

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

DESCRIPTION
List the Lustre or LNet parameter name(s) matching param_search. The parameter name(s) may contain wildcards using glob(3) pathname patterns.

OPTIONS
The various options supported by lctllist_param are listed and explained below:

-b, --dshbak
    Aggregate parameters with wildcards whenever a device number appears in the parameter name. By default --merge is enabled with this option to merge the simplified names. Specify --no-merge if you want the parameter names with wildcards but do not want them to be merged.

-c, --color=auto|always|never
    Use one of auto|always|never as the rule of when to apply color. The default is auto which will display color only when the output is a terminal.

-D, --dir-only
    Only list directories.

-F, --classify
    Append '/', '@' or '=' for dirs, symlinks and writeable files, respectively.

-l, --links
    Follow symlinks while searching for parameters. (enabled by default)

-L, --no-links
    Do not follow symlinks while searching for parameters.

-m, --merge
    Merge all parameters that have the same name such that only one will be shown. Enabled by default.

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

-o, --module
    Include modules params in the parameter search path, meaning that matching module parameters will be shown along side with Lustre parameters.

-p, --path
    Print the parameter path instead of the parameter name.

-r, --readable
    Print only parameters that have read permission. Can be used with [-w|--writable] to print parameters that are both readable and writable.

-R, --recursive
    Recursively list all parameters under the specified parameter search string. If param_search is unspecified, all the parameters will be shown.

-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

-w, --writable
    Print only parameters that have write permission. Can be used with [-r|--readable] to print parameters that are both readable and writable.

EXAMPLES
Use wildcards to obtain all matching parameters:
        # lctl list_param ost.*
        ost.OSS
        ost.num_refs

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=

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

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

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

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

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

AVAILABILITY
lctl list_param is part of the lustre(7) filesystem package since release 1.7.0

SEE ALSO
lfs(1), lustre(7), lctl-find_param(8), lctl-get_param(8), lctl-set_param(8)