CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2015/02/25 10:41:23
Modified files: sys/arch/aviion/aviion: locore.S machdep.c sys/arch/luna88k/luna88k: locore.S machdep.c Log message: Rework secondary processor initialization, in order to allocate their idle stack from the main processor, instead of from the secondary processors themselves. This used to work until recent churn in uvm require the kernel lock to be taken, and cpu_configure() runs with the kernel lock held by the boot processor. Allocating the idle stack on the secondary processors themselves was choosen early on, because there is no easy way, from the boot processor, to know the assocation between physical cpu number (ci_cpuid) and logical cpu number (the order they are initialized and reported in), especially on luna88k where there is no way to get secondary processors parked by the prom. Regression noticed by aoyama@. Verified to work on 2 and 4 cpu luna88k systems and 2 cpu aviion systems.