[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v10 00/23] MTTCG Base enabling patches with ARM enab
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PATCH v10 00/23] MTTCG Base enabling patches with ARM enablement |
Date: |
Mon, 6 Feb 2017 15:30:50 +0000 |
Hi Richard/Peter,
This is a mostly ARM focused update to last weeks v9.
It has necessitated one change to the cputlb API. It was pointed out
that translators often have to special case a bunch of things if you
longjmp() out of a helper. As a result the cputlb _synched() calls are
no longer QEMU_NORETURN but do document the importance of the guest to
exit the block as soon as synchronisation is required. In ARM's case
this is already done as the TLB flushes are treated as CP write
operation which ends the block by default. This means I was able to
drop the two patches that dealt with ARM_CP_PC, simplifying the code.
The other moderate change was fixing up target-arm/powerctl to
properly model the ON_PENDING powerstate which is key to vCPUs
handling otherwise race-prone start-up sequences. The power off and
reset methods where also updated to update the CPUState structures in
the targets context.
Otherwise there is the usual array of review tags and a few minor
fixes documented as normal bellow the --- line.
A version of the tree can be found at:
https://github.com/stsquad/qemu/tree/mttcg/base-patches-v10
Cheers,
Alex
Alex Bennée (17):
docs: new design document multi-thread-tcg.txt
tcg: move TCG_MO/BAR types into own file
tcg: add kick timer for single-threaded vCPU emulation
tcg: rename tcg_current_cpu to tcg_current_rr_cpu
tcg: remove global exit_request
tcg: enable tb_lock() for SoftMMU
tcg: enable thread-per-vCPU
cputlb: add assert_cpu_is_self checks
cputlb: tweak qemu_ram_addr_from_host_nofail reporting
cputlb and arm/sparc targets: convert mmuidx flushes from varg to
bitmap
cputlb: add tlb_flush_by_mmuidx async routines
cputlb: atomically update tlb fields used by tlb_reset_dirty
cputlb: introduce tlb_flush_*_all_cpus[_synced]
target-arm/powerctl: defer cpu reset work to CPU context
target-arm: don't generate WFE/YIELD calls for MTTCG
target-arm: ensure all cross vCPUs TLB flushes complete
tcg: enable MTTCG by default for ARM on x86 hosts
Jan Kiszka (1):
tcg: drop global lock during TCG code execution
KONRAD Frederic (2):
tcg: add options for enabling MTTCG
cputlb: introduce tlb_flush_* async work.
Pranith Kumar (3):
mttcg: translate-all: Enable locking debug in a debug build
mttcg: Add missing tb_lock/unlock() in cpu_exec_step()
tcg: handle EXCP_ATOMIC exception for system emulation
configure | 6 +
cpu-exec-common.c | 3 -
cpu-exec.c | 41 ++--
cpus.c | 343 ++++++++++++++++++++++++++-------
cputlb.c | 463 +++++++++++++++++++++++++++++++++++++--------
docs/multi-thread-tcg.txt | 350 ++++++++++++++++++++++++++++++++++
exec.c | 12 +-
hw/core/irq.c | 1 +
hw/i386/kvmvapic.c | 4 +-
hw/intc/arm_gicv3_cpuif.c | 3 +
hw/ppc/ppc.c | 16 +-
hw/ppc/spapr.c | 3 +
include/exec/cputlb.h | 2 -
include/exec/exec-all.h | 132 +++++++++++--
include/qom/cpu.h | 16 ++
include/sysemu/cpus.h | 2 +
memory.c | 2 +
qemu-options.hx | 20 ++
qom/cpu.c | 10 +
target/arm/arm-powerctl.c | 192 ++++++++++++-------
target/arm/arm-powerctl.h | 2 +
target/arm/cpu.h | 13 +-
target/arm/helper.c | 219 ++++++++++-----------
target/arm/op_helper.c | 50 ++++-
target/arm/translate-a64.c | 8 +-
target/arm/translate.c | 20 +-
target/i386/smm_helper.c | 7 +
target/s390x/misc_helper.c | 5 +-
target/sparc/ldst_helper.c | 8 +-
tcg/i386/tcg-target.h | 11 ++
tcg/tcg-mo.h | 48 +++++
tcg/tcg.h | 27 +--
translate-all.c | 66 ++-----
translate-common.c | 21 +-
vl.c | 49 ++++-
35 files changed, 1730 insertions(+), 445 deletions(-)
create mode 100644 docs/multi-thread-tcg.txt
create mode 100644 tcg/tcg-mo.h
--
2.11.0
- [Qemu-devel] [PATCH v10 00/23] MTTCG Base enabling patches with ARM enablement,
Alex Bennée <=
- [Qemu-devel] [PATCH v10 03/23] mttcg: Add missing tb_lock/unlock() in cpu_exec_step(), Alex Bennée, 2017/02/06
- [Qemu-devel] [PATCH v10 04/23] tcg: move TCG_MO/BAR types into own file, Alex Bennée, 2017/02/06
- [Qemu-devel] [PATCH v10 01/23] docs: new design document multi-thread-tcg.txt, Alex Bennée, 2017/02/06
- [Qemu-devel] [PATCH v10 02/23] mttcg: translate-all: Enable locking debug in a debug build, Alex Bennée, 2017/02/06
- [Qemu-devel] [PATCH v10 07/23] tcg: rename tcg_current_cpu to tcg_current_rr_cpu, Alex Bennée, 2017/02/06
- [Qemu-devel] [PATCH v10 06/23] tcg: add kick timer for single-threaded vCPU emulation, Alex Bennée, 2017/02/06
- [Qemu-devel] [PATCH v10 10/23] tcg: enable tb_lock() for SoftMMU, Alex Bennée, 2017/02/06
- [Qemu-devel] [PATCH v10 05/23] tcg: add options for enabling MTTCG, Alex Bennée, 2017/02/06