Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src
Module Name: src
Committed By: ad
Date: Wed Jan 8 17:38:43 UTC 2020
Modified Files:
src/sys/arch/aarch64/aarch64: cpuswitch.S genassym.cf
src/sys/arch/amd64/amd64: genassym.cf locore.S spl.S
src/sys/arch/arm/arm32: cpuswitch.S genassym.cf
src/sys/arch/hppa/hppa: genassym.cf
src/sys/arch/i386/i386: genassym.cf locore.S spl.S
src/sys/arch/mips/mips: genassym.cf locore.S mips_softint.c
src/sys/arch/powerpc/powerpc: genassym.cf locore_subr.S
softint_machdep.c
src/sys/arch/riscv/riscv: genassym.cf locore.S
src/sys/arch/sparc64/sparc64: genassym.cf locore.s
src/sys/arch/vax/vax: genassym.cf pmap.c subr.S
src/sys/ddb: db_proc.c
src/sys/kern: init_main.c kern_exec.c kern_exit.c kern_idle.c
kern_kthread.c kern_lwp.c kern_resource.c kern_runq.c kern_sleepq.c
kern_softint.c kern_synch.c
src/sys/rump/librump/rumpkern: lwproc.c scheduler.c
src/sys/sys: lwp.h
src/tests/rump/rumpkern: t_lwproc.c
Log Message:
Hopefully fix some problems seen with MP support on non-x86, in particular
where curcpu() is defined as curlwp->l_cpu:
- mi_switch(): undo the ~2007ish optimisation to unlock curlwp before
calling cpu_switchto(). It's not safe to let other actors mess with the
LWP (in particular l->l_cpu) while it's still context switching. This
removes l->l_ctxswtch.
- Move the LP_RUNNING flag into l->l_flag and rename to LW_RUNNING since
it's now covered by the LWP's lock.
- Ditch lwp_exit_switchaway() and just call mi_switch() instead. Everything
is in cache anyway so it wasn't buying much by trying to avoid saving old
state. This means cpu_switchto() will never be called with prevlwp ==
NULL.
- Remove some KERNEL_LOCK handling which hasn't been needed for years.
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/aarch64/aarch64/cpuswitch.S
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/aarch64/aarch64/genassym.cf
cvs rdiff -u -r1.80 -r1.81 src/sys/arch/amd64/amd64/genassym.cf
cvs rdiff -u -r1.195 -r1.196 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -u -r1.42 -r1.43 src/sys/arch/amd64/amd64/spl.S
cvs rdiff -u -r1.95 -r1.96 src/sys/arch/arm/arm32/cpuswitch.S
cvs rdiff -u -r1.82 -r1.83 src/sys/arch/arm/arm32/genassym.cf
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/hppa/hppa/genassym.cf
cvs rdiff -u -r1.117 -r1.118 src/sys/arch/i386/i386/genassym.cf
cvs rdiff -u -r1.174 -r1.175 src/sys/arch/i386/i386/locore.S
cvs rdiff -u -r1.49 -r1.50 src/sys/arch/i386/i386/spl.S
cvs rdiff -u -r1.67 -r1.68 src/sys/arch/mips/mips/genassym.cf
cvs rdiff -u -r1.220 -r1.221 src/sys/arch/mips/mips/locore.S
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/mips/mips/mips_softint.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/powerpc/powerpc/genassym.cf
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/powerpc/powerpc/locore_subr.S
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/powerpc/powerpc/softint_machdep.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/riscv/riscv/genassym.cf
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/riscv/riscv/locore.S
cvs rdiff -u -r1.82 -r1.83 src/sys/arch/sparc64/sparc64/genassym.cf
cvs rdiff -u -r1.421 -r1.422 src/sys/arch/sparc64/sparc64/locore.s
cvs rdiff -u -r1.53 -r1.54 src/sys/arch/vax/vax/genassym.cf
cvs rdiff -u -r1.187 -r1.188 src/sys/arch/vax/vax/pmap.c
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/vax/vax/subr.S
cvs rdiff -u -r1.8 -r1.9 src/sys/ddb/db_proc.c
cvs rdiff -u -r1.517 -r1.518 src/sys/kern/init_main.c
cvs rdiff -u -r1.485 -r1.486 src/sys/kern/kern_exec.c
cvs rdiff -u -r1.278 -r1.279 src/sys/kern/kern_exit.c
cvs rdiff -u -r1.29 -r1.30 src/sys/kern/kern_idle.c
cvs rdiff -u -r1.44 -r1.45 src/sys/kern/kern_kthread.c
cvs rdiff -u -r1.217 -r1.218 src/sys/kern/kern_lwp.c
cvs rdiff -u -r1.183 -r1.184 src/sys/kern/kern_resource.c
cvs rdiff -u -r1.55 -r1.56 src/sys/kern/kern_runq.c
cvs rdiff -u -r1.56 -r1.57 src/sys/kern/kern_sleepq.c \
src/sys/kern/kern_softint.c
cvs rdiff -u -r1.334 -r1.335 src/sys/kern/kern_synch.c
cvs rdiff -u -r1.42 -r1.43 src/sys/rump/librump/rumpkern/lwproc.c
cvs rdiff -u -r1.48 -r1.49 src/sys/rump/librump/rumpkern/scheduler.c
cvs rdiff -u -r1.192 -r1.193 src/sys/sys/lwp.h
cvs rdiff -u -r1.9 -r1.10 src/tests/rump/rumpkern/t_lwproc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index