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