HomeFreeBSD

Fix latency spikes on return from stop on POWER9+

Description

Fix latency spikes on return from stop on POWER9+

On POWER9 and higher platforms, cpu_idle_power9() directly control the external
interrupt enable lines when entering / exiting stop states. This does not
provide needed information to the rest of the kernel regarding the core going
into a stop state, and results in random, significant latency spikes (>200ms)
due to the stopped core not receiving wakeup interrupts in a deterministic
manner.

Bring cpu_idle_power9() in line with cpu_idle_powerx() by using spinlock
entry / exit to control the interrupt state vs. direct MSR read / write.

Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>

Details

Provenance
Timothy Pearson <tpearson@raptorengineering.com>Authored on Mon, Jan 20, 8:03 PM
jhibbitsCommitted on Tue, Jan 21, 11:14 PM
Parents
rG58f77309c4e0: Add machdep.cpu_idle_max_stop_state tunable
Branches
Unknown
Tags
Unknown

Event Timeline