[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/14] target-arm/arm-powerctl: wake up sleeping CPUs
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 09/14] target-arm/arm-powerctl: wake up sleeping CPUs |
Date: |
Mon, 31 Oct 2016 15:13:30 +0100 |
From: Alex Bennée <address@hidden>
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>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
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 6519d52..fbb7a15 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
- [Qemu-devel] [PULL 03/14] translate-all: add DEBUG_LOCKING asserts, (continued)
- [Qemu-devel] [PULL 03/14] translate-all: add DEBUG_LOCKING asserts, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 06/14] linux-user/elfload: ensure mmap_lock() held while setting up, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 05/14] tcg: comment on which functions have to be called with tb_lock held, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 02/14] translate_all: DEBUG_FLUSH -> DEBUG_TB_FLUSH, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 01/14] cpus: make all_vcpus_paused() return bool, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 08/14] tcg: protect translation related stuff with tb_lock., Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 07/14] translate-all: Add assert_(memory|tb)_lock annotations, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 11/14] tcg: cpus rm tcg_exec_all(), Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 10/14] tcg: move tcg_exec_all and helpers above thread fn, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 12/14] cpus: re-factor out handle_icount_deadline, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 09/14] target-arm/arm-powerctl: wake up sleeping CPUs,
Paolo Bonzini <=
- [Qemu-devel] [PULL 14/14] tcg: move locking for tb_invalidate_phys_page_range up, Paolo Bonzini, 2016/10/31
- [Qemu-devel] [PULL 13/14] *_run_on_cpu: introduce run_on_cpu_data type, Paolo Bonzini, 2016/10/31
- Re: [Qemu-devel] [PULL 00/14] MTTCG patches for 2016-10-31, Peter Maydell, 2016/10/31