Page MenuHomeFreeBSD

nvme: Add optimizations for device removal
AbandonedPublic

Authored by imp on Feb 11 2021, 1:05 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Oct 29, 2:15 AM
Unknown Object (File)
Wed, Oct 29, 1:41 AM
Unknown Object (File)
Fri, Oct 17, 7:38 AM
Unknown Object (File)
Thu, Oct 16, 4:37 PM
Unknown Object (File)
Thu, Oct 16, 3:32 PM
Unknown Object (File)
Thu, Oct 16, 9:28 AM
Unknown Object (File)
Oct 5 2025, 3:56 AM
Unknown Object (File)
Sep 21 2025, 2:34 PM
Subscribers

Details

Reviewers
mav
chs
chuck
Summary

When a device is hot unplugged (surprise removal) we can wind up in the recovery
path. When we detect the device is gone in the recovery path, short-circuit the
rest of recovery and fail the controller.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 36882
Build 33771: arc lint + arc unit

Event Timeline

imp requested review of this revision.Feb 11 2021, 1:05 AM

From past experience, I've noticed that HGST/WDC drives set CFS on power loss before being NVME_GONE. In this case, would the state machine recover as it doesn't check NVME_GONE again?

From past experience, I've noticed that HGST/WDC drives set CFS on power loss before being NVME_GONE. In this case, would the state machine recover as it doesn't check NVME_GONE again?

We check in other places in the driver and should recover.

I've not, however, tested that since I have no real means to do so short of turning off a PHY on a carrier card we us which isn't quite the same thing.

OBE. Even when I had this in, it only helped a little and failure is more nuanced than this patch contemplates.