Page MenuHomeFreeBSD

x86: Reduce amount of time the MCA lock is held while emitting records
ClosedPublic

Authored by jtl on Mon, Oct 6, 4:07 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Oct 11, 12:49 PM
Unknown Object (File)
Sat, Oct 11, 12:49 PM
Unknown Object (File)
Sat, Oct 11, 12:49 PM
Unknown Object (File)
Sat, Oct 11, 4:40 AM
Unknown Object (File)
Tue, Oct 7, 4:11 PM
Unknown Object (File)
Tue, Oct 7, 6:49 AM
Unknown Object (File)
Tue, Oct 7, 5:22 AM
Unknown Object (File)
Tue, Oct 7, 4:49 AM
Subscribers

Details

Summary

The MCA spin lock is acquired in the hardware interrupt context to record MCA messages. It is also acquired by a task handler to emit those messages.

Reduce the amount of time the task handler holds the lock to reduce the maximum amount of time the hardware interrupt handler may need to spin on the lock.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jtl requested review of this revision.Mon, Oct 6, 4:07 PM
This revision is now accepted and ready to land.Tue, Oct 7, 5:43 AM
markj added inline comments.
sys/x86/x86/mca.c
1047

It'd might be marginally cheaper to concatenate tmplist onto the end of the record list, and then remove excess elements from the front of the record list. But I'm not sure it's worth the complexity.