HomeFreeBSD

Ensure the idle thread's loop services interrupts in a timely way when

Description

Ensure the idle thread's loop services interrupts in a timely way when
using the ACPI C1/mwait sleep method.

Previously, the mwait instruction would return when an interrupt was
pending; however, the idle loop did not actually enable interrupts when
this occurred. This led to a situation where the idle loop could quickly
spin through the C1/mwait sleep method a number of times when an interrupt
was pending. (Eventually, the situation corrected itself when something
other than an interrupt triggered the idle loop to either enable interrupts
or schedule another thread.)

Reviewed by: kib, imp (earlier version)
Input from: jhb
MFC after: 1 week
Sponsored by: Netflix

Details

Provenance
jtlAuthored on
Reviewer
kib
Parents
rS313446: MFC r312767: Partially workaround ASMedia HBA error recovery.
Branches
Unknown
Tags
Unknown