On Tue, Sep 02, 2014 at 05:12:26PM +1000, Peter Crosthwaite wrote: > Hi All, > > I'm having trouble getting SMP to work on the vexpress platform. Looks > like a regression. > > Following these instructions using latest QEMU: > > http://wiki.ecg.rice.edu/doku.php?id=xzl:tutorial:arm_qemu > > section "Try ARM Linux prebuilt image on QEMU" with addition of "-smp > 2" argument, it fails to probe secondary CPUs: > > ./qemu-build/arm-softmmu/qemu-system-arm -kernel ../tmp/uImage -M > vexpress-a9 -cpu cortex-a9 -serial mon:stdio -m 1024 -initrd ./initrd > -append 'root=/dev/mmcblk0p2 rw mem=1024M raid=noautodetect > console=ttyAMA0,38400n8 rootwait vmalloc=256MB devtmpfs.mount=0' -sd > vexpress-a9-nano.img -nographic -smp 2 > Uncompressing Linux... done, booting the kernel. > [ 0.000000] Booting Linux on physical CPU 0 > ... > [ 0.510327] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 > [ 0.512100] Calibrating local timer... 99.40MHz. > [ 0.565227] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, > 1 counters available > [ 1.090777] CPU1: Booted secondary processor > [ 8.655956] CPU1: failed to come online > [ 8.680134] Brought up 1 CPUs > [ 8.680394] SMP: Total of 1 processors activated (609.07 BogoMIPS). > > A bisection points at: > > commit 6d327171551a12b937c5718073b9848d0274c74d > Author: Alex Bligh <a...@alex.org.uk> > Date: Wed Aug 21 16:02:59 2013 +0100 > > aio / timers: Remove alarm timers > > Remove alarm timers from qemu-timers.c now we use g_poll / ppoll > instead. > > Signed-off-by: Alex Bligh <a...@alex.org.uk> > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > > Using the parent to this commit (latest good revision = > 54904d2a9165bd34dee0f076826b308be2498fe0) gives: > > [ 0.719852] CPU1: Booted secondary processor > [ 0.859186] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 > [ 0.899732] CPU1: Unknown IPI message 0x1 > [ 0.922516] Brought up 2 CPUs > [ 0.922768] SMP: Total of 2 processors activated (1209.54 BogoMIPS). > > This a know issue or anyone have any insights?
No but it does seem something is broken with timers. The "CPU1: Booted secondary processor" message comes from the second CPU. The first CPU is waiting for it to come online. The timeout code is probably misbehaving. Stefan
pgpDAa7gLOwnz.pgp
Description: PGP signature