git: vkernel - Restabilize pmap code, redo kqueue, systimer, and console code

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jan 21 23:47:23 PST 2017


commit c91894e06a98663c288374755ff93d53b791918f
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Jan 21 23:43:07 2017 -0800

    vkernel - Restabilize pmap code, redo kqueue, systimer, and console code
    
    * Remove vm_token and add necessary vm_page spin locks to the vkernel's
      pmap code, improving its stability.
    
    * Separate the systimer interrupt and console tty support from the
      kqueue subsystem.
    
      Uses SIGURG for systimer
      Uses SIGIO for kqueue
      Uses SIGALRM for cothread signalling
    
    * The vkernel systimer code now uses a dedicated cothread for timing.  The
      cothread is a bit of a hack at the moment but is a more direct way of
      handling systimers.
    
    * Attempt to fix user%/sys%/intr%/idle% in the systat -vm and
      systat -pv output.  Still isn't perfect, but it is now more
      accurate.

Summary of changes:
 sys/cpu/x86_64/include/cpu.h               |   6 +
 sys/kern/kern_clock.c                      |  48 ++++--
 sys/kern/kern_intr.c                       |   3 +
 sys/platform/pc64/x86_64/mp_machdep.c      |  32 ++--
 sys/platform/vkernel64/include/cothread.h  |   3 +
 sys/platform/vkernel64/include/md_var.h    |   6 +-
 sys/platform/vkernel64/include/smp.h       |   2 +-
 sys/platform/vkernel64/platform/console.c  |  84 ++++++----
 sys/platform/vkernel64/platform/cothread.c |  34 +++-
 sys/platform/vkernel64/platform/init.c     |  21 ++-
 sys/platform/vkernel64/platform/kqueue.c   |  26 ++-
 sys/platform/vkernel64/platform/machintr.c |  16 +-
 sys/platform/vkernel64/platform/pmap.c     | 244 ++++++++++++++---------------
 sys/platform/vkernel64/platform/systimer.c | 108 +++++++++----
 sys/platform/vkernel64/x86_64/exception.c  |  58 ++++++-
 sys/platform/vkernel64/x86_64/mp.c         |  29 ++--
 sys/platform/vkernel64/x86_64/trap.c       |  11 +-
 sys/sys/globaldata.h                       |   5 +-
 18 files changed, 472 insertions(+), 264 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c91894e06a98663c288374755ff93d53b791918f


-- 
DragonFly BSD source repository


More information about the Commits mailing list