Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys/arch
Module Name: src
Committed By: skrll
Date: Fri Aug 14 16:18:37 UTC 2020
Modified Files:
src/sys/arch/arm/arm: arm_machdep.c
src/sys/arch/arm/arm32: cpuswitch.S db_machdep.c genassym.cf
src/sys/arch/arm/include: cpu.h locore.h proc.h
src/sys/arch/arm/include/arm32: frame.h
src/sys/arch/evbarm/conf: std.generic
Log Message:
Mirror the changes to aarch64 and
- Switch to TPIDRPRW_IS_CURLWP, because curlwp is accessed much more often
by MI code. It also makes curlwp preemption safe,
- Make ASTs operate per-LWP rather than per-CPU, otherwise sometimes LWPs
can see spurious ASTs (which doesn't cause a problem, it just means some
time may be wasted).
- Make sure ASTs are always set on the same CPU as the target LWP, and
delivered via IPI if posted from a remote CPU so that they are resolved
quickly.
- Add some cache line padding to struct cpu_info.
- Add a memory barrier in a couple of places where ci_curlwp is set. This
is needed whenever an LWP that is resuming on the CPU could hold an
adaptive mutex. The barrier needs to drain the CPU's store buffer, so
that the update to ci_curlwp becomes globally visible before the LWP can
resume and call mutex_exit().
To generate a diff of this commit:
cvs rdiff -u -r1.63 -r1.64 src/sys/arch/arm/arm/arm_machdep.c
cvs rdiff -u -r1.101 -r1.102 src/sys/arch/arm/arm32/cpuswitch.S
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/arm32/db_machdep.c
cvs rdiff -u -r1.93 -r1.94 src/sys/arch/arm/arm32/genassym.cf
cvs rdiff -u -r1.111 -r1.112 src/sys/arch/arm/include/cpu.h
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/arm/include/locore.h
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/include/proc.h
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/arm/include/arm32/frame.h
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbarm/conf/std.generic
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