DragonFly commits List (threaded) for 2005-11
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/emulation/linux/i386 linux_sysvec.c src/sys/i386/i386 trap.c src/sys/kern kern_slaballoc.c kern_sysmsg.c sys_process.c usched_bsd4.c src/sys/sys sysent.h
dillon 2005/11/21 13:59:52 PST
DragonFly src repository
Modified files:
sys/emulation/linux/i386 linux_sysvec.c
sys/i386/i386 trap.c
sys/kern kern_slaballoc.c kern_sysmsg.c
sys_process.c usched_bsd4.c
sys/sys sysent.h
Log:
Add a sysctl and tunable kern.syscall_mpsafe which allows system calls
marked MPSAFE in syscalls.master to run without the MP lock. This sysctl
is disabled (0) by default.
To make this work the userland scheduler's passive release / acquire code
had to be made MPSAFE. The release code accomplishes this by using
atomic_*() ops to manipulate curprocmask and rdyprocmask. The acquisition
code currently obtains the MP lock unconditionally. The userland scheduler
really need to be rewritten to be cpu-localized.
Only a few system calls, such as getuid(), are currently marked MPSAFE.
No matter how a system call is marked, the MP lock is obtained
unconditionally when ktracing or signaling.
Revision Changes Path
1.19 +5 -0 src/sys/emulation/linux/i386/linux_sysvec.c
1.67 +80 -28 src/sys/i386/i386/trap.c
1.36 +1 -1 src/sys/kern/kern_slaballoc.c
1.6 +2 -0 src/sys/kern/kern_sysmsg.c
1.19 +5 -4 src/sys/kern/sys_process.c
1.6 +44 -19 src/sys/kern/usched_bsd4.c
1.9 +1 -0 src/sys/sys/sysent.h
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/i386/linux_sysvec.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/trap.c.diff?r1=1.66&r2=1.67&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_slaballoc.c.diff?r1=1.35&r2=1.36&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_sysmsg.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/sys_process.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/usched_bsd4.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/sysent.h.diff?r1=1.8&r2=1.9&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]