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