NVME-OCP-PERSISTEN(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NVME-OCP-PERSISTEN(1) β€” like, the nvme-ocp-persistent-event-log of it all πŸŽ€

okay so bestie, this is a page from the NVMe Manual, and it's about nvme-ocp-persistent-event-log β€” yes that's a whole mouthful, i know, but stay with me πŸ’–


✨ NAME ✨

nvme-ocp-persistent-event-log β€” sends an NVMe persistent event log page request, hands you back the result, and also gives you the extra OCP-specific data on top 🫢


🌸 SYNOPSIS 🌸

nvme [<global-options>] ocp persistent-event-log <device>
                        [--action=<action> | -a <action>]
                        [--log-len=<log-len> | -l <log-len>]
                        [--raw-binary | -b]

πŸ¦‹ DESCRIPTION πŸ¦‹

So what it does: it fetches the NVMe persistent event log page off your NVMe device and gives you the returned structure back. Iconic. ✨

The <device> parameter is mandatory (no skipping it, diva), and it can be either the NVMe character device (ex: /dev/nvme0) or a namespace block device (ex: /dev/nvme0n1).

When it works, the returned persistent event log structure comes back in one of several ways depending on the option flags you picked β€” either the program parses that structure and prints it in a readable format, or it prints the raw buffer to stdout so some other program can parse it. Choose your fighter πŸ’…


πŸ”₯ OPTIONS πŸ”₯

  • -a <action>, --action=<action> β€” this is the action the controller shall take while it's trying to retrieve this log, during processing of this persistent log page command. It's a mandatory field, and depending on the value you issue, it may be Read Log Data, Establish Context and Read Log Data, or Release Context. Want the lore? See NVM Express 1.4 Spec. Section 5.14.1.13 Persistent Event Log (Log Identifier 0Dh) πŸ“–
  • -l <log-len>, --log-len=<log-len> β€” allocates a buffer of <log-len> bytes and requests that many bytes be returned in the constructed NVMe command. This param is mandatory. Sneaky little detail: if <log-len> given is 0 and action is 0, it will read the Total Log Length (TLL) of the page πŸ‘‘
  • -b, --raw-binary β€” prints the raw persistent event log buffer to stdout. no thoughts, just bytes πŸ’€

🌈 GLOBAL OPTIONS 🌈

These bad boys are defined at the top-level nvme command and are available to this subcommand too:

  • --dry-run β€” prints the command that would be executed, but does not actually execute it. all the vibes, none of the consequences πŸ™ˆ
  • --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, we do not share πŸ‘―
  • --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 get rejected, periodt 🚫
  • --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. The 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). it will literally wait forever for you, that's devotion πŸ₯Ή
  • -v, --verbose β€” increases the level of detail in the output. May be specified multiple times to further increase verbosity. stack it like your skincare routine πŸ§–
Also: these options can be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. the flag wins, every time, no cap πŸ’…

⭐ EXAMPLES ⭐

  1. Print the persistent event log page in a human readable format:
# nvme ocp persistent-event-log /dev/nvme0
  1. Print the raw persistent event log to a file:
# nvme ocp persistent-event-log /dev/nvme0 --raw-binary > persistent_log.raw
ngl it's probably a bad idea to not redirect stdout when you're using this mode. like. genuinely. redirect it. 😭

πŸ‘‘ NVME πŸ‘‘

Part of the nvme-user suite. one of us, one of us 🌟


and that's the whole page, bestie πŸ“ this little gem comes to you from NVMe, dated 10/30/2026 β€” go forth and read those persistent event logs, you absolute main character πŸ’œπŸ¦‹

πŸ“¦ where this page comes from