HomeFreeBSD

Ensure that spinlock sections are balanced even after a panic.

Description

Ensure that spinlock sections are balanced even after a panic.

vpanic() uses spinlock_enter() to disable interrupts before dumping core.
However, when the scheduler is stopped and INVARIANTS is not configured,
thread_lock() does not acquire a spinlock section, while thread_unlock()
releases one. This can result in interrupts staying enabled while the
kernel dumps core, complicating post-mortem analysis of the crash.

Approved by: re (gjb)
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division

Details

Provenance
markjAuthored on
Parents
rS302345: Call audit hooks to capture vnode attributes for three file-descriptor
Branches
Unknown
Tags
Unknown