From owner-cvs-all Thu Aug 30 11:53:16 2001 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 99A3C37B406; Thu, 30 Aug 2001 11:53:03 -0700 (PDT) (envelope-from dillon@FreeBSD.org) Received: (from dillon@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id f7UIovg29154; Thu, 30 Aug 2001 11:50:57 -0700 (PDT) (envelope-from dillon) Message-Id: <200108301850.f7UIovg29154@freefall.freebsd.org> From: Matt Dillon Date: Thu, 30 Aug 2001 11:50:57 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/alpha/alpha trap.c src/sys/i386/i386 trap.c src/sys/i386/linux linux_sysvec.c src/sys/kern init_sysent.c kern_ktrace.c kern_sig.c makesyscalls.sh subr_trap.c syscalls.c syscalls.master src/sys/sparc64/sparc64 trap.c src/sys/sys ... X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG dillon 2001/08/30 11:50:57 PDT Modified files: sys/alpha/alpha trap.c sys/i386/i386 trap.c sys/i386/linux linux_sysvec.c sys/kern init_sysent.c kern_ktrace.c kern_sig.c makesyscalls.sh subr_trap.c syscalls.c syscalls.master sys/sparc64/sparc64 trap.c sys/sys syscall-hide.h syscall.h syscall.mk sysproto.h Log: Remove the MPSAFE keyword from the parser for syscalls.master. Instead introduce the [M] prefix to existing keywords. e.g. MSTD is the MP SAFE version of STD. This is prepatory for a massive Giant lock pushdown. The old MPSAFE keyword made syscalls.master too messy. Begin comments MP-Safe procedures with the comment: /* * MPSAFE */ This comments means that the procedure may be called without Giant held (The procedure itself may still need to obtain Giant temporarily to do its thing). sv_prepsyscall() is now MP SAFE and assumed to be MP SAFE sv_transtrap() is now MP SAFE and assumed to be MP SAFE ktrsyscall() and ktrsysret() are now MP SAFE (Giant Pushdown) trapsignal() is now MP SAFE (Giant Pushdown) Places which used to do the if (mtx_owned(&Giant)) mtx_unlock(&Giant) test in syscall[2]() in */*/trap.c now do not. Instead they explicitly unlock Giant if they previously obtained it, and then assert that it is no longer held to catch broken system calls. Rebuild syscall tables. Revision Changes Path 1.75 +5 -9 src/sys/alpha/alpha/trap.c 1.201 +12 -18 src/sys/i386/i386/trap.c 1.84 +6 -1 src/sys/i386/linux/linux_sysvec.c 1.102 +0 -0 src/sys/kern/init_sysent.c 1.55 +11 -1 src/sys/kern/kern_ktrace.c 1.129 +5 -1 src/sys/kern/kern_sig.c 1.46 +31 -8 src/sys/kern/makesyscalls.sh 1.198 +4 -5 src/sys/kern/subr_trap.c 1.91 +0 -0 src/sys/kern/syscalls.c 1.92 +33 -31 src/sys/kern/syscalls.master 1.10 +5 -13 src/sys/sparc64/sparc64/trap.c 1.85 +0 -0 src/sys/sys/syscall-hide.h 1.89 +0 -0 src/sys/sys/syscall.h 1.43 +0 -0 src/sys/sys/syscall.mk 1.79 +0 -0 src/sys/sys/sysproto.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message