git: kernel - Change lwp_fork() to not hold the mplock in the new thread

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Aug 28 16:20:32 PDT 2010


commit 2b0bd8aa71c8580bcfe166e5ab7331c0d5e821a9
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Aug 28 15:37:07 2010 -0700

    kernel - Change lwp_fork() to not hold the mplock in the new thread
    
    * Change lwp_fork() to produce a mpsafe thread at startup instead of
      one with the mplock held.
    
    * Change all fork_trampoline() functions and all kernel callbacks
      via cpu_set_fork_handler() to expect a thread without the
      mplock held.
    
    * Adjust the thread procedures for aio etc (those not yet mpsafe)
      to acquire the mplock.

Summary of changes:
 sys/kern/init_main.c                       |    7 +++++--
 sys/kern/kern_fork.c                       |    5 +----
 sys/kern/vfs_aio.c                         |    7 +++++--
 sys/netproto/smb/smb_iod.c                 |    6 +++++-
 sys/platform/pc32/i386/exception.s         |    4 ++--
 sys/platform/pc32/i386/trap.c              |   16 +++++++++-------
 sys/platform/pc64/x86_64/exception.S       |    4 ++--
 sys/platform/pc64/x86_64/trap.c            |   16 +++++++++-------
 sys/platform/vkernel/i386/fork_tramp.s     |    4 ++--
 sys/platform/vkernel/i386/trap.c           |   16 +++++++++-------
 sys/platform/vkernel64/x86_64/fork_tramp.s |    4 ++--
 sys/platform/vkernel64/x86_64/trap.c       |   16 +++++++++-------
 12 files changed, 60 insertions(+), 45 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/2b0bd8aa71c8580bcfe166e5ab7331c0d5e821a9


-- 
DragonFly BSD source repository





More information about the Commits mailing list