git: kernel = Fix tsleep(), remove MAILBOX signals, change signalset locks for LWPs
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Nov 11 22:38:05 PST 2011
commit 94f98873ae3f49c05cb6155508726f987a584cae
Author: Matthew Dillon <dillon at 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
More information about the Commits
mailing list