hardclock IPI is delivered. In the current code after r355311, critical section is taken only around hardclockintr() call, and sched_preempt() is called after the section is exited. If we reschedule after exit, as we typically would due to conditions that caused IPI, in ULE the runq tdq_ipipending is not cleared, which blocks generation of further preempt IPIs. Since all relatively modern (10 years) hardware has per-cpu event timers, restoring the critical section conditionally does not affect it. Reported and tested by: cy Diagnosed and reviewed by: jeff (previous version) Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D22716 |
||
---|---|---|
.. | ||
acpica | ||
bios | ||
conf | ||
cpufreq | ||
include | ||
iommu | ||
isa | ||
pci | ||
x86 | ||
xen |