Module Name: src Committed By: ad Date: Thu Jan 9 16:35:04 UTC 2020
Modified Files: src/sys/arch/aarch64/aarch64: cpufunc.c src/sys/arch/arm/arm32: cpu.c src/sys/arch/macppc/macppc: cpu.c src/sys/arch/mips/mips: cpu_subr.c src/sys/arch/x86/x86: cpu_topology.c src/sys/kern: kern_runq.c kern_synch.c sched_4bsd.c subr_cpu.c src/sys/sys: cpu.h cpu_data.h sched.h src/sys/uvm: uvm_page.c Log Message: - Many small tweaks to the SMT awareness in the scheduler. It does a much better job now at keeping all physical CPUs busy, while using the extra threads to help out. In particular, during preempt() if we're using SMT, try to find a better CPU to run on and teleport curlwp there. - Change the CPU topology stuff so it can work on asymmetric systems. This mainly entails rearranging one of the CPU lists so it makes sense in all configurations. - Add a parameter to cpu_topology_set() to note that a CPU is "slow", for where there are fast CPUs and slow CPUs, like with the Rockwell RK3399. Extend the SMT awareness to try and handle that situation too (keep fast CPUs busy, use slow CPUs as helpers). To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/aarch64/aarch64/cpufunc.c cvs rdiff -u -r1.138 -r1.139 src/sys/arch/arm/arm32/cpu.c cvs rdiff -u -r1.69 -r1.70 src/sys/arch/macppc/macppc/cpu.c cvs rdiff -u -r1.44 -r1.45 src/sys/arch/mips/mips/cpu_subr.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/x86/x86/cpu_topology.c cvs rdiff -u -r1.56 -r1.57 src/sys/kern/kern_runq.c cvs rdiff -u -r1.335 -r1.336 src/sys/kern/kern_synch.c cvs rdiff -u -r1.41 -r1.42 src/sys/kern/sched_4bsd.c cvs rdiff -u -r1.5 -r1.6 src/sys/kern/subr_cpu.c cvs rdiff -u -r1.47 -r1.48 src/sys/sys/cpu.h cvs rdiff -u -r1.46 -r1.47 src/sys/sys/cpu_data.h cvs rdiff -u -r1.85 -r1.86 src/sys/sys/sched.h cvs rdiff -u -r1.221 -r1.222 src/sys/uvm/uvm_page.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.