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.

Reply via email to