Paolo inspired me to add x86's on_cpu and on_cpu_asynch to ARM's API. I messed around with it a while, but haven't really settled on what I want to do. I played with the following approaches: - wfe/sev, requires the concept of an idle state and knowing that the target CPU is in that state - i.e. no arbitrary preemption. - IPI, allows arbitrary preemption, but requires the GIC to be setup enough to receive SGIs and also a dedicated SGI for the scheduling - PSCI, poweroff state isn't better than an idle state, and PSCI works asynchronously wrt CPUs I need to switch to more pressing work now, so I'm going to backburn this. However, I'll probably come back to it sometime and while I was messing with it I wrote the 3 patches in this series that we can take now. drew Andrew Jones (3): arm/arm64: smp: assert secondaries only boot once arm/arm64: psci: cpu_psci_cpu_die operates on itself arm/arm64: psci: avoid calling halt directly arm/psci.c | 5 ++--- lib/arm/asm/psci.h | 2 +- lib/arm/asm/smp.h | 8 -------- lib/arm/psci.c | 5 +++-- lib/arm/smp.c | 13 +++++++++++++ 5 files changed, 19 insertions(+), 14 deletions(-) -- 2.9.4