NVME-WDC-VS-SMART(1)

πŸ’– NVME-WDC-VS-SMART(1) β€” like, the nvme-wdc-vs-smart-add-log page bestie πŸ’–

okay so real quick before we dive in: this is a page from the NVMe Manual (yes, that one) and it's all about one very specific little vendor command. pull up a chair, we're getting into it 🫢


✨ NAME ✨

nvme-wdc-vs-smart-add-log β€” sends the NVMe WDC vs-smart-add-log Vendor Unique Command, and hands you back the result. that's it, that's the whole vibe πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

nvme [<global-options>] wdc vs-smart-add-log <device>
                        [--interval=<NUM>, -i <NUM>]
                        [--log-page-version=<NUM>, -l <NUM>]
                        [--log-page-mask=<LIST>, -p <LIST>]
                        [--namespace-id=<nsid> | -n <nsid>]

🌸 DESCRIPTION 🌸

so for the NVMe device you point at, this sends a Vendor Unique WDC vs-smart-add-log command and gives you the additional smart log. iconic behavior honestly ✨

the <device> parameter is mandatory β€” no skipping it, bestie β€” and it can be either the NVMe character device (ex: /dev/nvme0) or the block device (ex: /dev/nvme0n1). either one slaps, pick your fighter.

⚠️ heads up: this only works on WDC devices that support this feature. on any other device the results are undefined β€” like, literally undefined, don't come for me 😭

on success it returns 0. otherwise you get an error code. that's the whole deal πŸŽ€


πŸ‘‘ OPTIONS πŸ‘‘

  • -i <NUM>, --interval=<NUM> β€” returns the statistics from a specific interval; defaults to 14. ngl this one is only valid for the 0xC1 log page and gets straight-up ignored for every other log page πŸ™ˆ
  • -l <NUM>, --log-page-version=<NUM> β€” log page version: 0 = vendor, 1 = WDC. this is only valid for the 0xC0 log page and is ignored for all the other log pages, periodt πŸ’…
  • -p <LIST>, --log-page-mask=<LIST> β€” hand it a comma separated list of the log pages you actually want displayed. possible values are 0xc0, 0xc1, 0xca, 0xd0. note: not all pages are supported on all drives (rude, but true). the default is to display all the supported log pages ✨
  • -n <nsid>, --namespace-id=<nsid> β€” sets the command's nsid value to the nsid you give it. defaults to 0xffffffff if you don't give one. this option may not affect anything depending on the log page, since the log page may or may not be specific to a namespace. the broadcast value 0xffffffff can also be written as all or -1 🫢

⭐ Valid Interval values and description :- ⭐

okay this was a table in the original and i'm giving it to you as a list because we're in a terminal and we keep it cute:

  • 1 β€” Most recent five (5) minute accumulated set.
  • 2-12 β€” Previous five (5) minute accumulated sets.
  • 13 β€” The accumulated total of sets 1 through 12 that contain the previous hour of accumulated statistics.
  • 14 β€” The statistical set accumulated since power-up.
  • 15 β€” The statistical set accumulated during the entire lifetime of the device.

🌈 GLOBAL OPTIONS 🌈

these bad boys are defined at the top-level nvme command and they're available to this subcommand too. main character energy fr fr:

  • --dry-run β€” prints the command that would be executed, but does not actually execute it. all talk, no action, love that for us πŸ’€
  • --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, don't be greedy πŸ“
  • --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. other versions are rejected. no cap πŸ”₯
  • --quiet β€” suppresses informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. shhh 🀫
  • --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). patient queen behavior ⏳
  • -v, --verbose β€” increases the level of detail in the output. may be specified multiple times to further increase verbosity. go off, stack them πŸ‘‘

these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. always. no discussion πŸ’…


🧚 EXAMPLES 🧚

  1. has the program issue the WDC vs-smart-add-log Vendor Unique Command with the default interval (14):
# nvme wdc vs-smart-add-log /dev/nvme0
  1. has the program issue the WDC vs-smart-add-log Vendor Unique Command for just the 0xCA log page:
# nvme wdc vs-smart-add-log /dev/nvme0 -p 0xCA
  1. has the program issue the WDC vs-smart-add-log Vendor Unique Command for the 0xC0 and 0xCA log pages:
# nvme wdc vs-smart-add-log /dev/nvme0 -p 0xCA,0xC0

πŸ’œ NVME πŸ’œ

part of the nvme-user suite. one of us, one of us 🌸


and that's the whole page, bestie!! written by the NVMe crew, dated 10/30/2026, version vibes courtesy of NVMe β€” go forth and read your smart logs, you absolute icon πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from