git: kernel - Change the discrete mplock into mp_token
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Dec 11 13:22:23 PST 2010
commit b5d16701e255c342d21e69a6c80b8711c028dc65
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Dec 11 12:59:46 2010 -0800
kernel - Change the discrete mplock into mp_token
* Use a lwkt_token for the mp_lock. This consolidates our longer-term
spinnable locks (the mplock and tokens) into just tokens, making it
easier to solve performance issues.
* Some refactoring of the token code was needed to guarantee the ordering
when acquiring and releasing the mp_token vs other tokens.
* The thread switch code, lwkt_switch(), is simplified by this change
though not necessarily faster.
* Remove td_mpcount, mp_lock, and other related fields.
* Remove assertions related to td_mpcount and friends, generally folding
them into similar assertions for tokens.
Summary of changes:
sys/bus/cam/cam_sim.c | 2 +-
sys/conf/files | 1 -
sys/ddb/db_ps.c | 14 +-
sys/kern/init_main.c | 3 -
sys/kern/kern_intr.c | 33 +---
sys/kern/kern_kinfo.c | 5 +-
sys/kern/kern_mplock.c | 316 ----------------------------
sys/kern/kern_shutdown.c | 1 -
sys/kern/lwkt_thread.c | 153 +-------------
sys/kern/lwkt_token.c | 255 ++++++++++++++++-------
sys/kern/tty_cons.c | 3 -
sys/kern/usched_bsd4.c | 6 -
sys/kern/usched_dummy.c | 6 -
sys/platform/pc32/apic/apic_vector.s | 3 +-
sys/platform/pc32/i386/exception.s | 12 -
sys/platform/pc32/i386/genassym.c | 3 -
sys/platform/pc32/i386/locore.s | 5 -
sys/platform/pc32/i386/machdep.c | 7 +-
sys/platform/pc32/i386/mp_machdep.c | 22 +--
sys/platform/pc32/i386/trap.c | 19 +--
sys/platform/pc32/i386/vm86.c | 4 +-
sys/platform/pc32/i386/vm_machdep.c | 4 -
sys/platform/pc32/isa/ipl.s | 3 +-
sys/platform/pc64/apic/apic_vector.s | 3 +-
sys/platform/pc64/x86_64/exception.S | 14 --
sys/platform/pc64/x86_64/genassym.c | 3 -
sys/platform/pc64/x86_64/ipl.s | 3 +-
sys/platform/pc64/x86_64/machdep.c | 7 +-
sys/platform/pc64/x86_64/mp_machdep.c | 22 +--
sys/platform/pc64/x86_64/trap.c | 14 --
sys/platform/vkernel/i386/cpu_regs.c | 9 +-
sys/platform/vkernel/i386/fork_tramp.s | 12 -
sys/platform/vkernel/i386/genassym.c | 3 -
sys/platform/vkernel/i386/mp.c | 8 +-
sys/platform/vkernel/i386/trap.c | 12 -
sys/platform/vkernel64/x86_64/fork_tramp.s | 14 --
sys/platform/vkernel64/x86_64/genassym.c | 3 -
sys/platform/vkernel64/x86_64/mp.c | 8 +-
sys/platform/vkernel64/x86_64/trap.c | 12 -
sys/sys/mplock2.h | 176 +---------------
sys/sys/thread.h | 19 +-
sys/sys/thread2.h | 13 +-
sys/vfs/procfs/procfs_ctl.c | 5 +-
sys/vfs/tmpfs/tmpfs_vnops.c | 16 +--
44 files changed, 268 insertions(+), 988 deletions(-)
delete mode 100644 sys/kern/kern_mplock.c
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b5d16701e255c342d21e69a6c80b8711c028dc65
--
DragonFly BSD source repository
More information about the Commits
mailing list