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)
Fri, Nov 8, 5:56 AM
Unknown Object (File)
Thu, Nov 7, 8:42 AM
Unknown Object (File)
Oct 15 2024, 8:50 PM
Unknown Object (File)
Oct 13 2024, 9:36 AM
Unknown Object (File)
Oct 13 2024, 3:30 AM
Unknown Object (File)
Oct 10 2024, 8:08 PM
Unknown Object (File)
Oct 8 2024, 6:29 PM
Unknown Object (File)
Oct 8 2024, 12:29 AM
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 58727
Build 55615: 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.