git: kernel - Allow 8254 timer to be forced, clean-up user/sys/intr/idle
Matthew Dillon
dillon at crater.dragonflybsd.org
Wed Mar 11 12:00:54 PDT 2020
commit 63823918841fb49563040cdc77c4b4474ea39b93
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Wed Mar 11 11:50:36 2020 -0700
kernel - Allow 8254 timer to be forced, clean-up user/sys/intr/idle
* Allows the 8254 timer to be forced on for machines which do not
support the LAPIC timer during deep-sleep. Fix an assertion that
occurs in this situation.
hw.i8254.intr_disable="0"
* Adjust the statclock to calculate user/sys/intr/idle time
properly when the clock interrupt occurs from an interrupt
thread instead of from a hard interrupt.
Basically when the clock interrupt occurs from an interrupt thread,
we have to look at curthread->td_preempted instead of curthread.
In addition RQF_INTPEND will be set across the call due to the way
processing works and we have to look at the bitmask of interrupt
sources instead of this bit.
Reported-by: CuteLarva
Summary of changes:
sys/cpu/x86_64/include/cpu.h | 1 -
sys/kern/kern_clock.c | 148 ++++++++++++++++++-----------
sys/kern/kern_intr.c | 6 +-
sys/platform/pc64/isa/clock.c | 2 +-
sys/platform/pc64/x86_64/machdep.c | 40 +++++++-
sys/platform/vkernel64/platform/machintr.c | 13 +++
sys/sys/proc.h | 1 +
sys/sys/thread.h | 1 +
8 files changed, 154 insertions(+), 58 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/63823918841fb49563040cdc77c4b4474ea39b93
--
DragonFly BSD source repository
More information about the Commits
mailing list