HomeFreeBSD

nvme: Add exclusion for ISR

Description

nvme: Add exclusion for ISR

Add a basically uncontended spinlock that we take out while the ISR is
running. This has two effects: First, when we get a timeout, we can
safely call the nvme_qpair_process_completions w/o racing any ISRs.
Second, we can use it to ensure that we don't reset the card while
the ISRs are active (right now we just sleep and hope for the best,
which usually is fine, but not always).

Sponsored by: Netflix
MFC After: 2 weeks
Reviewed by: chuck, gallatin
Differential Revision: https://reviews.freebsd.org/D41452

(cherry picked from commit 8052b01e7e4113fa8296ce43c354116b0a1774b7)

Details

Provenance
impAuthored on Sep 28 2023, 8:46 PM
Reviewer
chuck
Differential Revision
D41452: nvme: Add exclusion for ISR
Parents
rG5d627e0669c5: nvme: Greatly improve error recovery
Branches
Unknown
Tags
Unknown