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

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Nov 21 14:00:51 PST 2005


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





More information about the Commits mailing list