User Details
- User Since
- Jan 23 2015, 10:35 PM (616 w, 2 d)
Wed, Nov 11
Tue, Nov 10
Switch the attribution trailer from Co-authored-by to Assisted-by, per imp.
Mon, Nov 9
Sat, Nov 7
Thank you for the fix! Committed to head.
Wed, Oct 21
This is now the only revision in the series without an accept -- anything still open here? The man page question above was answered with the D15371 precedent (the controller identify already works this way), and the wording changes are in the current diff.
Tue, Oct 20
Rebase on current head: re-anchor the nvme.h additions around the new Timestamp feature definitions (e8a7efd9), and update the new Timestamp set_feature call for the widened nvme_ctrlr_cmd_set_feature() signature. No content changes to the additions themselves.
Oct 15 2026
(Fixing text dropped from the previous comment: the timed command was time sysctl -a > /dev/null.)
The fix has now been verified on the hardware that originally hit this. On a patched kernel, an NVMe boot-mirror member was force-detached (devctl disable -f on the nvme device), leaving the dead PCI function behind, and completed in 0.068 seconds. On an unpatched kernel the same state spins pci_find_cap_method() for tens of minutes via the dev.nvme.N.%iommu sysctl, with the stack shown in the summary.
Trim the comments per review feedback: drop the explanation of all-ones config reads.
Oct 6 2026
The nvd(4) change here is the opposite of expanding it -- it just makes nvd decline to attach to zoned namespaces, so zoned support is nda(4)-only. So this already matches what you are suggesting, and it answers one of the doubts voidanix flagged in the WIP note.
Oct 5 2026
Sep 29 2026
Use the new nvme_ns_data_format_index() from D59627 to determine the current LBA format instead of open-coding the FLBAS extraction, so drives with more than 16 LBA formats get the right default.
Rebase on current head: re-anchor the nvme.h additions around the new nvme_ns_data_format_index() helper from D59627. No content changes to the additions themselves.
Rework per the naming discussion: rename the subcommand from nvfeature to feature. SCSI has no feature command and the ATA SET FEATURES subcommands already have dedicated camcontrol subcommands (apm, aam, epc), so the name is unclaimed; the subcommand errors cleanly on non-NVMe devices. Also fix a being/bing typo in the man page.
Rework per the naming discussion: fold NVMe format support into the existing format subcommand (protocol dispatch like identify/persist) and retire nvformat. The NVMe path gains the same are-you-sure confirmation the SCSI path has (-q/-y honored); -r is rejected for NVMe and -w is a no-op since the NVMe format command does not return until the format completes. Tested on hardware: confirmation prompt and abort verified, no formats actually issued.
Sep 28 2026
Address review feedback: error out instead of crashing when -a or -f is missing, and zero the hostid set buffer and only transfer 8 bytes for the non-extended host identifier.
Fix the crypto secure-erase setting to actually map to NVME_FORMAT_SES_CRYPTO (it wrongly mapped to a user data erase), and make the default timeout depend on the erase type: 30 seconds for crypto erase, 30 minutes otherwise. -T still overrides.
Constrain the number of reservation report entries printed to what fits in the data buffer, per review feedback.
Fix the entry count clamp in the reservation status swapbytes functions: sizeof(s) is the pointer size, which made the clamp one entry too permissive (the same out-of-bounds class flagged on D59534).
Sep 21 2026
Rebase on the persist rework in D59534 (the nvres subcommand is gone; no changes to nvfeature itself).
Rebase on the persist rework in D59534 (the nvres subcommand is gone; no changes to nvformat itself).
Rework per review feedback: fold NVMe reservation support into the existing persist subcommand instead of adding an nvres subcommand. persist dispatches on device protocol like identify. SCSI syntax unchanged; NVMe uses the same -i/-o/-k/-K/-T vocabulary, with NVMe-only unregister/replace actions and a new -c option for Persist Through Power Loss State. Tested on reservation-capable hardware (PASCARI X200); details in the summary.
Address review feedback: drop the Namespace Management sentence from the man page, and reword the -N usage text to: send identify to the NVMe namespace.
Sep 9 2026
Address review feedback: drop the redundant sys/cdefs.h include (nvme.h pulls in sys/param.h), and annotate the arguments on all calls in the new functions so the comment style is consistent throughout. Also fix two annotation typos (dxfrer_len, and cdw10 on a cdw11 argument) in the hostid wrappers.
Adapt to the wire-byte-order hostid convention from D59531: drop the pre-print byte swapping (which also fixes a bug where the 8-byte hostid was truncated through a uint8_t on big-endian), decode the UUID display with uuid_dec_be() to match the uuid_enc_be() used on set, and use le64enc() to build the 8-byte set payload.
Keep the hostid in the little-endian byte order the device returns it in, per review feedback: no more byte swapping in the resv status swapbytes functions or ifdefs in nvme_hostid_sbuf(). exhid is now bool. Drop the nvme_le128tobe()/nvme_le128toh() split, no longer needed. Update nvmecontrol resv print for the wire-order hostid fields (also fixes zero padding and inconsistent LE/BE output).
Fix spelling of the changeable capability name
Aug 3 2026
Looks good to me.
Mar 11 2026
Mar 2 2026
Feb 14 2025
Fine with me...but are we not actually putting the text of the license in the file anymore?
Jan 25 2025
The purpose of invalidating the pack in the da(4) driver is to deal with removable media. If the removable disk is pulled while the device is open, the pack is invalidated. Getting through a successful open again clears the flag.
