Date: Tue, 26 Mar 2002 21:39:23 -0800 (PST) From: Matt Dillon <dillon@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern kern_fork.c kern_prot.c kern_switch.c src/sys/sys proc.h src/sys/alpha/alpha critical.c src/sys/alpha/include cpufunc.h proc.h src/sys/conf files.alpha files.i386 files.ia64 files.pc98 files.powerpc files.sparc64 ... Message-ID: <200203270539.g2R5dOY96756@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
dillon 2002/03/26 21:39:23 PST Modified files: sys/kern kern_fork.c kern_prot.c kern_switch.c sys/sys proc.h sys/alpha/include cpufunc.h proc.h sys/conf files.alpha files.i386 files.ia64 files.pc98 files.powerpc files.sparc64 sys/i386/i386 exception.s genassym.c machdep.c mp_machdep.c mpapic.c swtch.s vm_machdep.c sys/i386/include cpufunc.h pcb.h pcpu.h proc.h sys/i386/isa apic_vector.s clock.c icu_vector.s intr_machdep.c intr_machdep.h npx.c sys/ia64/include cpufunc.h proc.h sys/pc98/i386 machdep.c sys/pc98/pc98 clock.c sys/powerpc/include cpufunc.h proc.h sys/sparc64/include cpufunc.h proc.h Added files: sys/alpha/alpha critical.c sys/i386/i386 critical.c sys/ia64/ia64 critical.c sys/powerpc/powerpc critical.c sys/sparc64/sparc64 critical.c Log: Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt disablement assumptions in kern_fork.c by adding another API call, cpu_critical_fork_exit(). Cleanup the td_savecrit field by moving it from MI to MD. Temporarily move cpu_critical*() from <arch>/include/cpufunc.h to <arch>/<arch>/critical.c (stage-2 will clean this up). Implement interrupt deferral for i386 that allows interrupts to remain enabled inside critical sections. This also fixes an IPI interlock bug, and requires uses of icu_lock to be enclosed in a true interrupt disablement. This is the stage-1 commit. Stage-2 will occur after stage-1 has stabilized, and will move cpu_critical*() into its own header file(s) + other things. This commit may break non-i386 architectures in trivial ways. This should be temporary. Reviewed by: core Approved by: core Revision Changes Path 1.1 +59 -0 src/sys/alpha/alpha/critical.c (new) 1.14 +5 -13 src/sys/alpha/include/cpufunc.h 1.14 +1 -0 src/sys/alpha/include/proc.h 1.82 +1 -0 src/sys/conf/files.alpha 1.397 +1 -0 src/sys/conf/files.i386 1.28 +1 -0 src/sys/conf/files.ia64 1.228 +1 -0 src/sys/conf/files.pc98 1.7 +1 -0 src/sys/conf/files.powerpc 1.16 +1 -0 src/sys/conf/files.sparc64 1.1 +220 -0 src/sys/i386/i386/critical.c (new) 1.94 +19 -0 src/sys/i386/i386/exception.s 1.124 +8 -0 src/sys/i386/i386/genassym.c 1.506 +14 -5 src/sys/i386/i386/machdep.c 1.183 +6 -0 src/sys/i386/i386/mp_machdep.c 1.58 +5 -0 src/sys/i386/i386/mpapic.c 1.131 +6 -0 src/sys/i386/i386/swtch.s 1.187 +1 -0 src/sys/i386/i386/vm_machdep.c 1.118 +7 -20 src/sys/i386/include/cpufunc.h 1.45 +2 -1 src/sys/i386/include/pcb.h 1.33 +5 -1 src/sys/i386/include/pcpu.h 1.16 +1 -0 src/sys/i386/include/proc.h 1.80 +162 -35 src/sys/i386/isa/apic_vector.s 1.184 +12 -0 src/sys/i386/isa/clock.c 1.34 +165 -58 src/sys/i386/isa/icu_vector.s 1.70 +46 -0 src/sys/i386/isa/intr_machdep.c 1.39 +14 -0 src/sys/i386/isa/intr_machdep.h 1.129 +9 -3 src/sys/i386/isa/npx.c 1.1 +58 -0 src/sys/ia64/ia64/critical.c (new) 1.11 +5 -12 src/sys/ia64/include/cpufunc.h 1.9 +1 -0 src/sys/ia64/include/proc.h 1.140 +7 -3 src/sys/kern/kern_fork.c 1.147 +11 -12 src/sys/kern/kern_prot.c 1.24 +4 -3 src/sys/kern/kern_switch.c 1.268 +9 -5 src/sys/pc98/i386/machdep.c 1.111 +11 -0 src/sys/pc98/pc98/clock.c 1.11 +7 -22 src/sys/powerpc/include/cpufunc.h 1.6 +1 -0 src/sys/powerpc/include/proc.h 1.1 +62 -0 src/sys/powerpc/powerpc/critical.c (new) 1.13 +7 -18 src/sys/sparc64/include/cpufunc.h 1.9 +1 -0 src/sys/sparc64/include/proc.h 1.1 +60 -0 src/sys/sparc64/sparc64/critical.c (new) 1.212 +0 -1 src/sys/sys/proc.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203270539.g2R5dOY96756>