DragonFly BSD
DragonFly commits List (threaded) for 2011-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel = Fix tsleep(), remove MAILBOX signals, change signalset locks for LWPs


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 11 Nov 2011 22:36:39 -0800 (PST)

commit 94f98873ae3f49c05cb6155508726f987a584cae
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Nov 11 22:27:22 2011 -0800

    kernel = Fix tsleep(), remove MAILBOX signals, change signalset locks for LWPs
    
    * tsleep() was improperly calling lwkt_gettoken() and potentially blocking
      prior to sleeping, which it isn't supposed to do.
    
      This may have been the cause of several odd panics and corruption, though
      no smoking gun was found.
    
    * Change access to lp->lwp_siglist to use a spinlock instead of a token.
      Add a per-LWP spinlock in addition to the per-LWP token.
    
    * Remove MAILBOX signals (which require p->p_token).  These are no longer
      used.

Summary of changes:
 sys/cpu/i386/include/pmap.h              |    5 --
 sys/cpu/x86_64/include/pmap.h            |    5 --
 sys/emulation/linux/linux_misc.c         |    5 ++-
 sys/kern/init_main.c                     |    1 +
 sys/kern/kern_fork.c                     |    1 +
 sys/kern/kern_sig.c                      |   65 +++++++++++-------------------
 sys/kern/kern_synch.c                    |   39 +++---------------
 sys/platform/pc32/i386/machdep.c         |   15 -------
 sys/platform/pc64/x86_64/machdep.c       |   15 -------
 sys/platform/vkernel/i386/cpu_regs.c     |   15 -------
 sys/platform/vkernel64/x86_64/cpu_regs.c |   15 -------
 sys/sys/proc.h                           |    3 +-
 sys/sys/signal.h                         |    3 -
 sys/sys/signal2.h                        |    5 ++
 sys/sys/signalvar.h                      |    1 -
 sys/vfs/mfs/mfs_vfsops.c                 |    5 ++-
 sys/vfs/procfs/procfs_ctl.c              |    3 +
 sys/vm/vm_vmspace.c                      |   11 -----
 18 files changed, 50 insertions(+), 162 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/94f98873ae3f49c05cb6155508726f987a584cae


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]