NVME-SNDK-SET-LAT(1)

πŸ’… NVME-SNDK-SET-LAT(1) β€” nvme-sndk-set-latency-monitor-feature ✨

okay bestie, welcome to the NVMe Manual section for NVME-SNDK-SET-LAT(1). this is the page about nvme-sndk-set-latency-monitor-feature, and yes it's a mouthful, but she's iconic and you're gonna get it. πŸŽ€


🌸 NAME 🌸

nvme-sndk-set-latency-monitor-feature β€” the command that sets the NVMe sndk latency monitor feature options. that's it, that's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

nvme [<global-options>] sndk set-latency-monitor-feature <device>
                        [--active_bucket_timer_threshold=<NUM> | -t <NUM>]
                        [--active_threshold_a=<NUM> | -a <NUM>]
                        [--active_threshold_b=<NUM> | -b <NUM>]
                        [--active_threshold_c=<NUM> | -c <NUM>]
                        [--active_threshold_d=<NUM> | -d <NUM>]
                        [--active_latency_config=<NUM> | -f <NUM>]
                        [--active_latency_minimum_window=<NUM> | -w <NUM>]
                        [--debug_log_trigger_enable=<NUM> | -r <NUM>]
                        [--discard_debug_log=<NUM> | -l <NUM>]
                        [--latency_monitor_feature_enable=<NUM> | -e <NUM>]

like, look at all those flags. she has range. πŸ’…


πŸ’– DESCRIPTION πŸ’–

so for the NVMe device you hand her, this command sets the latency monitor feature options β€” but only if the device supports it, okay? no cap, if it doesn't support it, that's just not happening. 🫢

the <device> parameter is mandatory and it's an NVMe character device (ex: /dev/nvme0). literally mandatory. don't forget it. 😭

you can check how it went with the get-latency-monitor-log command β€” that's your vibe check afterwards. ✨

on success it returns 0, and an error code otherwise. periodt.


πŸŽ€ OPTIONS πŸŽ€

  • -t <NUM>, --active_bucket_timer_threshold=<NUM> β€” this is the value that loads the Active Bucket Timer Threshold. default value is 07E0h. πŸ“
  • -a <NUM>, --active_threshold_a=<NUM> β€” the value that loads into the Active Threshold A. default value is 05h.
  • -b <NUM>, --active_threshold_b=<NUM> β€” the value that loads into the Active Threshold B. default value is 13h.
  • -c <NUM>, --active_threshold_c=<NUM> β€” the value that loads into the Active Threshold C. default value is 1Eh.
  • -d <NUM>, --active_threshold_d=<NUM> β€” the value that loads into the Active Threshold D. default value is 2Eh.
  • -f <NUM>, --active_latency_config=<NUM> β€” this one loads into the Active Latency Configuration. it configures how both the Active Latency Stamp and the Active Measured Latency Fields get updated on a per I/O command (Read, Write, Deallocate) counter basis. default value is 0FFFh. she's doing a lot of work ngl πŸ’€
  • -w <NUM>, --active_latency_minimum_window=<NUM> β€” the value that loads into the Active Latency Minimum Window. default value is 0Ah.
  • -r <NUM>, --debug_log_trigger_enable=<NUM> β€” the value that loads into the Debug Log Trigger Enable. when it's set to 1b, the first time the bucket/counter combination is incremented, a debug log is triggered. when it's cleared to 0b, no debug log gets triggered when the bucket/counter combination is incremented. simple as that. πŸ”₯
  • -l <NUM>, --discard_debug_log=<NUM> β€” Discard Debug Log. when cleared to 00h, the debug log (if it exists) will not be cleared. when set to 01h, the debug log gets discarded so another log can be triggered β€” and all the fields in the Set Features Data structure are valid. when set to 02h, the debug log also gets discarded so another log can be triggered, but none of the other fields of the Set Features Data structure are valid. πŸ‘‘ three moods, three behaviors, iykyk.
  • -e <NUM>, --latency_monitor_feature_enable=<NUM> β€” Latency Monitor Feature Enable. when set to 01h, the Latency Monitor Feature is enabled. when cleared to 00h, the Latency Monitor Feature is disabled. main character switch fr fr. ⭐

🌈 GLOBAL OPTIONS 🌈

these live at the top-level nvme command, and yeah, they're available to this subcommand too. the whole squad, no gatekeeping:

  • --dry-run β€” prints the command that would be executed, but doesn't actually execute it. window shopping, basically. πŸ™ˆ
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support.
  • --no-retries β€” disables retry logic on transient errors.
  • -o <fmt>, --output-format=<fmt> β€” sets the reporting format to normal, tabular, 'json, or binary. only one output format at a time, bestie, pick a lane. πŸ’…
  • --output-format-version=<version> β€” selects the output format version. version 1 uses the original field naming, while version 2 (the default) gives you more consistent and script-friendly field names. any other versions are rejected β€” denied, blocked, not today. 😭
  • --quiet β€” suppresses informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. she's quiet but she's not silent about errors. πŸ”‡
  • --set-options=<key=value>[,<key=value>...] β€” sets libnvme library options for this invocation. supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.
  • --timeout=<ms> β€” sets the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). no clock-watching. ⏳
  • -v, --verbose β€” increases the level of detail in the output. can be specified multiple times to increase verbosity even more. say it with me: more -v, more lore. ✨
πŸ’‘ these options can also be set as machine-wide defaults in nvme-cli.conf(5). but a command-line flag always overrides the file β€” command line stays winning, always. πŸ‘‘

🧚 EXAMPLES 🧚

  • set the NVMe sndk latency monitor feature options enabled with the default values:
# nvme sndk set-latency-monitor-feature /dev/nvme0 -e 1
  • set the NVMe sndk latency monitor feature options disabled with the default values:
# nvme sndk set-latency-monitor-feature /dev/nvme0 -e 0
  • set the NVMe sndk latency monitor feature options enabled with specific values (look at her go, so many flags, she ate πŸ’…):
# nvme sndk set-latency-monitor-feature /dev/nvme0 --active_bucket_timer_threshold=1 \
            --active_threshold_a=0x0 \
            --active_threshold_b=0x1 \
            --active_threshold_c=0x2 \
            --active_threshold_d=0x3 \
            --active_latency_config=0xfff \
            --active_latency_minimum_window=0 \
            --debug_log_trigger_enable=0 \
            --discard_debug_log=0 \
            --latency_monitor_feature_enable=0x1

πŸ¦„ NVME πŸ¦„

part of the nvme-user suite. she runs with her friends, obviously. 🫢


and that's the whole page, bestie! this one came from the NVMe manual, dated 10/30/2026, under the page name NVME-SNDK-SET-LAT(1) β€” so go forth, set those latency monitor features, and slay. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from