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