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