NVME-FEAT-PERFC(1)

πŸ“¦ version 3.2, in arch rolling

✨ NAME ✨ β€” nvme-feat-perfc

okay so bestie, this is nvme-feat-perfc from the NVMe Manual, and it’s literally the get-and-set performance characteristics feature. πŸ’…βœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

nvme [<global-options>] feat perfc <device>
                        [--namespace-id=<nsid> | -n <nsid>] [--attri=<attri> | -a <attri>]
                        [--rvspa | -r] [--r4karl=<r4karl> | -R <r4karl>]
                        [--paid=<paid> | -p <paid>] [--attrl=<attrl> | -A <attrl>]
                        [--vs-data=<file> | -V <file>]
                        [--sel=<select> | -S <select>] [--save | -s]

🌸 DESCRIPTION 🌸

This command gets and sets the performance characteristics feature. Iconic behavior, honestly. 🫢

The <device> parameter is mandatory, no skipping it. It can be either the NVMe character device β€” like /dev/nvme0 β€” or a namespace block device β€” like /dev/nvme0n1. Both examples are exactly that. ✨

If any of the setting options β€” --rvspa, --r4karl, or --paid β€” are specified, the command updates the performance characteristics configuration. If none of those options are specified, it retrieves and displays the current configuration instead. Lowkey a whole dual-purpose moment. πŸ’–

On success it returns 0; otherwise you get an error code. Periodt.


πŸ’… OPTIONS πŸ’…

  • -n <nsid>, --namespace-id=<nsid> β€” optional namespace attached to the controller.
  • -a <attri>, --attri=<attri> β€” attribute index. Specifies the performance attribute index to set or get.
  • -r, --rvspa β€” revert vendor specific performance attribute flag.
  • -R <r4karl>, --r4karl=<r4karl> β€” random 4 KiB average read latency.
  • -p <paid>, --paid=<paid> β€” performance attribute identifier. Must be a valid UUID string format.
  • -A <attrl>, --attrl=<attrl> β€” attribute length. Required when using vendor specific performance data.
  • -V <file>, --vs-data=<file> β€” vendor specific data input file path. Reads the data buffer from the specified file.
  • -S <select>, --sel=<select> β€” select (SEL): this field specifies which value of the attributes to return in the provided data:
    • 0 β€” current β€” Current
    • 1 β€” default β€” Default
    • 2 β€” saved β€” Saved
    • 3 β€” supported β€” Supported capabilities
  • -s, --save β€” save the attribute so that it persists through all power states and resets.

🌈 GLOBAL OPTIONS 🌈

These are defined at the top-level nvme command, and they’re available to this subcommand too. Bestie, they’re global-global. πŸ‘‘

  • --dry-run β€” print the command that would be executed, but do not actually execute it.
  • --no-ioctl-probing β€” disable probing for 64-bit IOCTL support.
  • --no-retries β€” disable retry logic on transient errors.
  • -o <fmt>, --output-format=<fmt> β€” set the reporting format to normal, tabular, 'json, or binary. Only one output format may be used at a time.
  • --output-format-version=<version> β€” select the output format version. Version 1 uses the original field naming, while version 2 (default) provides more consistent and script-friendly field names. Other versions are rejected.
  • --quiet β€” suppress informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level.
  • --set-options=<key=value>[,<key=value>...] β€” set libnvme library options for this invocation. Supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.
  • --timeout=<ms> β€” set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff).
  • -v, --verbose β€” increase the level of detail in the output. May be specified multiple times to further increase verbosity.

These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. No cap. πŸ’–


πŸŽ€ EXAMPLES πŸŽ€

  • Has the program issue a feat perfc to get the current configuration:
# nvme feat perfc /dev/nvme0
  • Has the program issue a feat perfc to set standard performance attributes:
# nvme feat perfc /dev/nvme0 --attri=0 --r4karl=10 --save
  • Has the program issue a feat perfc to set vendor specific data from a file:
# nvme feat perfc /dev/nvme0 --attri=128 --paid=12345678-1234-1234-1234-123456789abc --attrl=64 --vs-data=vs_buf.bin

πŸ‘‘ NVME πŸ‘‘

Part of the nvme-user suite. ✨


and that’s the whole vibe β€” sourced from the NVMe manual, dated 10/30/2026, page NVME-FEAT-PERFC(1). mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from