NVME-FEAT-TIMESTAM(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… nvme-feat-timestamp β€” like, the timestamp feature, bestie

okay so this is a page out of the NVMe Manual (yes, the NVMe one, we're fancy here) and it's literally all about one little command that reads and writes the clock inside your controller. let's get into it πŸ•βœ¨


✨ NAME ✨

nvme-feat-timestamp β€” get and set timestamp feature


πŸ¦‹ SYNOPSIS πŸ¦‹

nvme [<global-options>] feat timestamp <device>
                        [--timestamp=<timestamp> | -t <timestamp>]
                        [--sel=<select> | -S <select>] [--save | -s]

🌸 DESCRIPTION 🌸

Get and set timestamp feature. that's the whole gig. πŸ’«

the <device> parameter is mandatory, no skipping it β€” and it can be either the NVMe character device (like /dev/nvme0) or a namespace block device (like /dev/nvme0n1). pick your fighter 🫢

if you pass the setting option (--timestamp), the command updates the controller's internal clock to whatever timestamp value you handed it. if you don't pass it, it just retrieves and displays the current timestamp from the device. so it's like β€” read by default, write if you say so. lowkey elegant ngl ✨

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


πŸ’… OPTIONS πŸ’…

  • -t <timestamp>, --timestamp=<timestamp> β€” the timestamp value itself. it's the number of milliseconds since midnight, January 1, 1970 (that's POSIX epoch time, iykyk), and that's what gets written to the controller clock. πŸ•°οΈ
  • -S <select>, --sel=<select> β€” Select (SEL): this field specifies which value of the attributes to return in the provided data. here's the whole menu, no cap:
    • 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. like, it stays staying. πŸ‘‘

πŸ‘‘ GLOBAL OPTIONS πŸ‘‘

these are defined at the top-level nvme command and are available to this subcommand too. they're the main character options, honestly:

  • --dry-run β€” print the command that would be executed, but do not actually execute it. fake it till you make it energy πŸ™ˆ
  • --no-ioctl-probing β€” disable probing for 64-bit IOCTL support.
  • --no-retries β€” disable retry logic on transient errors. one shot, no do-overs πŸ’€
  • -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 β€” pick one, bestie πŸŽ€
  • --output-format-version=<version> β€” select the output format version. version 1 uses the original field naming, while version 2 (the default) provides more consistent and script-friendly field names. other versions are rejected, periodt.
  • --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). time is a construct anyway ⏳
  • -v, --verbose β€” increase the level of detail in the output. may be specified multiple times to further increase verbosity. go off, stack those -vs πŸ”₯
these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. the flag wins, every single time, no debate πŸ’–

🌈 EXAMPLES 🌈

  • has the program issue a feat timestamp to get the current device time:
# nvme feat timestamp /dev/nvme0
  • has the program issue a feat timestamp to set the clock to a specific value:
# nvme feat timestamp /dev/nvme0 --timestamp=1700000000000

⭐ NVME ⭐

part of the nvme-user suite. iconic, we know 🧚


and that's the whole page, bestie β€” brought to you by the NVMe manual, dated 10/30/2026. go set a timestamp, you absolute legend πŸ’œπŸŽ€

πŸ“¦ where this page comes from