Page MenuHomeFreeBSD

Avoid completing non-dump I/O requests after a panic.
AbandonedPublic

Authored by markj on May 27 2018, 9:38 PM.
Tags
None
Referenced Files
F150791959: D15591.id.diff
Sat, Apr 4, 2:16 AM
Unknown Object (File)
Tue, Mar 24, 11:30 PM
Unknown Object (File)
Sat, Mar 7, 11:50 PM
Unknown Object (File)
Mar 2 2026, 1:14 PM
Unknown Object (File)
Feb 26 2026, 10:01 AM
Unknown Object (File)
Feb 26 2026, 3:40 AM
Unknown Object (File)
Dec 19 2025, 8:52 PM
Unknown Object (File)
Nov 29 2025, 3:28 AM
Subscribers
None

Details

Reviewers
None
Summary

Currently we might call into filesystem or pager code when completing a
non-dump CCB, which typically results in assertion failures or
deadlocks when dumping. D4647 attempted to handle this with a dedicated
CAM doneq, but as was pointed out in the review, that solution may cause
us to fail to unfreeze the device after an error. Try to handle the
problem a different way: filter non-dump CCBs in xpt_done_process(), and
attempt to unfreeze the devq after an error if we're running after a
panic. Stash non-dump CCBs on a list so that they can be inspected
during a debugging session.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 16870
Build 16747: arc lint + arc unit