git: kernel - Move CPUMASK_LOCK out of the cpumask_t

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jun 30 12:34:09 PDT 2014


commit cc694a4adfe3bad609fd893fc883e5e1f25d3bd6
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Jun 30 12:27:59 2014 -0700

    kernel - Move CPUMASK_LOCK out of the cpumask_t
    
    * Add cpulock_t (a 32-bit integer on all platforms) and implement
      CPULOCK_EXCL as well as space for a counter.
    
    * Break-out CPUMASK_LOCK, add a new field to the pmap (pm_active_lock)
      and do the process vmm (p_vmm_cpulock) and implement the mmu interlock
      there.
    
      The VMM subsystem uses additional bits in cpulock_t as a mask counter
      for implementing its interlock.
    
      The PMAP subsystem just uses the CPULOCK_EXCL bit in pm_active_lock for
      its own interlock.
    
    * Max cpus on 64-bit systems is now 64 instead of 63.
    
    * cpumask_t is now just a pure cpu mask and no longer requires all-or-none
      atomic ops, just normal bit-for-bit atomic ops.  This will allow us to
      hopefully extend it past the 64-cpu limit soon.

Summary of changes:
 sys/cpu/i386/include/param.h                 |  4 +-
 sys/cpu/i386/include/types.h                 |  6 +++
 sys/cpu/x86_64/include/param.h               |  2 +-
 sys/cpu/x86_64/include/types.h               |  6 +++
 sys/kern/sys_vmm.c                           | 28 +++++++-----
 sys/platform/pc32/i386/genassym.c            |  7 ++-
 sys/platform/pc32/i386/pmap.c                |  8 ++--
 sys/platform/pc32/i386/pmap_inval.c          | 17 +++----
 sys/platform/pc32/i386/swtch.s               | 17 +++----
 sys/platform/pc32/include/pmap.h             |  4 +-
 sys/platform/pc64/include/pmap.h             |  4 +-
 sys/platform/pc64/vmm/vmx.c                  | 59 ++++++++++++++++--------
 sys/platform/pc64/x86_64/genassym.c          |  7 ++-
 sys/platform/pc64/x86_64/pmap.c              |  8 ++--
 sys/platform/pc64/x86_64/pmap_inval.c        | 21 ++++-----
 sys/platform/pc64/x86_64/swtch.s             | 33 ++++----------
 sys/platform/vkernel/i386/genassym.c         |  7 ++-
 sys/platform/vkernel/include/pmap.h          |  4 +-
 sys/platform/vkernel/platform/pmap.c         |  2 +-
 sys/platform/vkernel64/include/pmap.h        |  4 +-
 sys/platform/vkernel64/platform/pmap.c       |  4 +-
 sys/platform/vkernel64/platform/pmap_inval.c | 67 +++++++++++++---------------
 sys/platform/vkernel64/x86_64/genassym.c     |  7 ++-
 sys/platform/vkernel64/x86_64/swtch.s        | 19 +++-----
 sys/sys/proc.h                               |  3 +-
 25 files changed, 181 insertions(+), 167 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list