Page MenuHomeFreeBSD

nvme: Always lock and only avoid processing for recovery state
ClosedPublic

Authored by imp on Jul 18 2024, 6:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, May 12, 9:46 PM
Unknown Object (File)
Mon, Apr 28, 8:32 AM
Unknown Object (File)
Apr 21 2025, 5:39 AM
Unknown Object (File)
Apr 20 2025, 11:13 PM
Unknown Object (File)
Apr 15 2025, 3:44 AM
Unknown Object (File)
Mar 1 2025, 4:29 AM
Unknown Object (File)
Mar 1 2025, 12:33 AM
Unknown Object (File)
Feb 28 2025, 8:49 PM
Subscribers

Details

Summary

When we lose a race with the timeout code, shift towards waiting for
that timeout code to complete so we can acquire the lock. This way we
can make sure we're in 'normal' mode before processing I/O
completions. If we're not in 'normal' mode, then we're resetting and we
should avoid completions.

Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 58706
Build 55594: arc lint + arc unit

Event Timeline

imp requested review of this revision.Jul 18 2024, 6:12 PM
gallatin added inline comments.
sys/dev/nvme/nvme_qpair.c
693

Speaking of name changes, with the direction you're heading in, I'd call this "event_lock" or something, rather than "recovery"

This revision is now accepted and ready to land.Jul 18 2024, 10:00 PM

Misc updates with testing

This revision now requires review to proceed.Jul 19 2024, 4:23 AM
This revision was not accepted when it landed; it landed in state Needs Review.Jul 23 2024, 11:04 PM
This revision was automatically updated to reflect the committed changes.