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
F108593309: D46024.id141082.diff
Sun, Jan 26, 6:08 PM
Unknown Object (File)
Thu, Jan 23, 12:03 AM
Unknown Object (File)
Wed, Jan 22, 10:25 PM
Unknown Object (File)
Sun, Jan 19, 10:05 PM
Unknown Object (File)
Sat, Jan 18, 10:37 AM
Unknown Object (File)
Fri, Jan 17, 8:02 PM
Unknown Object (File)
Fri, Jan 17, 3:39 PM
Unknown Object (File)
Tue, Jan 14, 6:46 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 Not Applicable
Unit
Tests Not Applicable

Event Timeline

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

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.