Page MenuHomeFreeBSD

ice: Defer RDMA critical-error notifications
Needs ReviewPublic

Authored by kbowling on Thu, Sep 3, 12:03 PM.
Tags
None
Referenced Files
F171001244: D59340.id.diff
Tue, Sep 8, 3:01 AM
F170974245: D59340.id185697.diff
Mon, Sep 7, 11:11 PM
F170951716: D59340.diff
Mon, Sep 7, 7:55 PM
Unknown Object (File)
Mon, Sep 7, 6:10 AM
Unknown Object (File)
Mon, Sep 7, 2:36 AM
Unknown Object (File)
Mon, Sep 7, 12:58 AM
Unknown Object (File)
Sun, Sep 6, 11:02 PM
Unknown Object (File)
Sat, Sep 5, 12:10 AM
Subscribers

Details

Reviewers
kgalazka
Group Reviewers
Intel Networking
Restricted Owners Package(Owns No Changed Paths)
Summary
ice_msix_admin() runs as an interrupt filter inside a critical section.
ice_rdma_notify_pe_intr() acquires the global RDMA sx and invokes the
client event handler, both of which require sleepable thread context.  A
PE or HMC critical error could therefore panic under WITNESS or sleep
from interrupt context.

Accumulate OICR causes atomically in the interrupt filter and mark them
pending in the driver state.  Deliver the notification from the iflib
admin task before processing reset events.  This preserves the existing
ordering, lets an iRDMA-requested reset run in the same admin pass, and
coalesces causes from multiple interrupts.

MFC after:      2 weeks
Sponsored by:   BBOX.io

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped