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>
