Hi,
This is a quick update to the series I posted at the end of last week.
It mostly adds a bunch of review tags. There are two changes of note:
cputlb and arm/sparc targets: convert mmuidx flushes...
This has been updated to reduce the churn of the previous iteration
by doing all the MMUIdx shifting in-situ for the tlb_flush calls.
And:
tcg: enable MTTCG by default for ARM on x86 hosts
Mostly cosmetic tweaks but I have clarified the semantics of the
TCG_MO_foo declarations with a tweak to the TCG_TARGET_DEFAULT_MO on
x86 to be (TCG_MO_ALL & ~TCG_MO_ST_LD).
From v8 rth said:
"As far as I'm concerned, I'm done with my review and this can go in."
So this is really your last chance to raise any concerns or questions
before the merge (although of course bug fixes can go in later ;-).
Peter,
The patches that touch ARM and that could do with maintainer sign-off are:
tcg: enable MTTCG by default for ARM on x86 hosts
target-arm: ensure all cross vCPUs TLB flushes complete
target-arm: introduce ARM_CP_EXIT_PC
target-arm/cpu.h: make ARM_CP defined consistent
target-arm: don't generate WFE/YIELD calls for MTTCG
target-arm/powerctl: defer cpu reset work to CPU context
cputlb and arm/sparc targets: convert mmuidx flushes from varg to bitmap
tcg: drop global lock during TCG code execution
Cheers,
Alex Bennée (19):
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/cpu.h: make ARM_CP defined consistent
target-arm: introduce ARM_CP_EXIT_PC
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 | 465 +++++++++++++++++++++++++++++++++++++--------
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 | 130 +++++++++++--
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 | 146 ++++++++------
target/arm/cpu.h | 32 ++--
target/arm/helper.c | 275 ++++++++++++++-------------
target/arm/op_helper.c | 50 ++++-
target/arm/translate-a64.c | 12 +-
target/arm/translate.c | 24 ++-
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 ++++-
34 files changed, 1731 insertions(+), 479 deletions(-)
create mode 100644 docs/multi-thread-tcg.txt
create mode 100644 tcg/tcg-mo.h
--
2.11.0