Follow-up to #346 / SCHED_MIC (#385).
#346 targeted amd64 and arm64. SCHED_MIC's core classification lives in x86 code (sys/x86/x86/mp_x86.c, CPUID-based), so on arm64 every CPU defaults to CPU_CLASS_PERF and the scheduler behaves like ULE.
Goal: populate cpu_core_class[] on arm64 big.LITTLE / DynamIQ systems (e.g. via the cpu capacity / DT capacity-dmips-mhz or MIDR core-type info) so the MI cost function in sched_mic.c applies there too. The MI side (array, cost function, sysctls) is already arch-agnostic; only detection is needed.
Relevant code: add an arm64 classifier analogous to mic_classify(); the array is cpu_core_class[] in sys/kern/sched_mic.c.
Follow-up to #346 / SCHED_MIC (#385).
#346 targeted amd64 and arm64. SCHED_MIC's core classification lives in x86 code (
sys/x86/x86/mp_x86.c, CPUID-based), so on arm64 every CPU defaults toCPU_CLASS_PERFand the scheduler behaves like ULE.Goal: populate
cpu_core_class[]on arm64 big.LITTLE / DynamIQ systems (e.g. via the cpu capacity / DTcapacity-dmips-mhzor MIDR core-type info) so the MI cost function insched_mic.capplies there too. The MI side (array, cost function, sysctls) is already arch-agnostic; only detection is needed.Relevant code: add an arm64 classifier analogous to
mic_classify(); the array iscpu_core_class[]insys/kern/sched_mic.c.