HomeFreeBSD

Check IPI status more frequently when waiting.

Description

Check IPI status more frequently when waiting.

An IPI cannot be sent via the local APIC if a previous IPI is still
being delivered. Attempts to send an IPI will wait for a pending IPI
to clear. Prior to r278325 these checks used a spin loop with a
hardcoded maximum count which broke AP startup on some systems.
However, r278325 also enforced a minimum latency of 5 microseconds if an
IPI was still pending which resulted in a measurable performance hit.
This change reduces that minimum latency to 1 microsecond.

Tested by: stas
MFC after: 3 days

Details

Provenance
jhbAuthored on
Parents
rS297038: Convert the printfs here from %lx to %jx as well after r297000 in order
Branches
Unknown
Tags
Unknown