[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v3 09/19] target-arm/arm-powerctl: wake up sleeping CP
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [RFC v3 09/19] target-arm/arm-powerctl: wake up sleeping CPUs |
Date: |
Fri, 3 Jun 2016 21:40:18 +0100 |
Testing with Alexander's bare metal syncronisation tests fails in MTTCG
leaving one CPU spinning forever waiting for the second CPU to wake up.
We simply need to kick the vCPU once we have processed the PSCI power on
call.
As the power control API is for system emulation only as is the
qemu_kick_cpu function we also ensure we only build arm-powerctl for
SoftMMU builds.
Tested-by: Alex Bennée <address@hidden>
CC: Alexander Spyridakis <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
v3
- re-base caught arm_powerctl re-factor
- include cpu.h header for kick definition
- fix Makefile.objs to only build for softmmu
---
target-arm/Makefile.objs | 2 +-
target-arm/arm-powerctl.c | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/target-arm/Makefile.objs b/target-arm/Makefile.objs
index f206411..847fb52 100644
--- a/target-arm/Makefile.objs
+++ b/target-arm/Makefile.objs
@@ -9,4 +9,4 @@ obj-y += neon_helper.o iwmmxt_helper.o
obj-y += gdbstub.o
obj-$(TARGET_AARCH64) += cpu64.o translate-a64.o helper-a64.o gdbstub64.o
obj-y += crypto_helper.o
-obj-y += arm-powerctl.o
+obj-$(CONFIG_SOFTMMU) += arm-powerctl.o
diff --git a/target-arm/arm-powerctl.c b/target-arm/arm-powerctl.c
index d452230..4baa051 100644
--- a/target-arm/arm-powerctl.c
+++ b/target-arm/arm-powerctl.c
@@ -166,6 +166,8 @@ int arm_set_cpu_on(uint64_t cpuid, uint64_t entry, uint64_t
context_id,
/* Start the new CPU at the requested address */
cpu_set_pc(target_cpu_state, entry);
+ qemu_cpu_kick(target_cpu_state);
+
/* We are good to go */
return QEMU_ARM_POWERCTL_RET_SUCCESS;
}
--
2.7.4
- Re: [Qemu-devel] [RFC v3 11/19] tcg: add options for enabling MTTCG, (continued)
Re: [Qemu-devel] [RFC v3 13/19] tcg: rename tcg_current_cpu to tcg_current_rr_cpu, Alex Bennée, 2016/06/07
[Qemu-devel] [RFC v3 14/19] tcg: remove global exit_request, Alex Bennée, 2016/06/03
[Qemu-devel] [RFC v3 09/19] target-arm/arm-powerctl: wake up sleeping CPUs,
Alex Bennée <=
[Qemu-devel] [RFC v3 10/19] tcg: cpus rm tcg_exec_all(), Alex Bennée, 2016/06/03
[Qemu-devel] [RFC v3 18/19] tcg: Ensure safe TB lookup out of 'tb_lock', Alex Bennée, 2016/06/03
[Qemu-devel] [RFC v3 17/19] tcg: enable thread-per-vCPU, Alex Bennée, 2016/06/03
[Qemu-devel] [RFC v3 15/19] tcg: drop global lock during TCG code execution, Alex Bennée, 2016/06/03
[Qemu-devel] [RFC v3 19/19] cpu-exec: remove tb_lock from the hot-path, Alex Bennée, 2016/06/03