[PATCH v6 0/2] accel/tcg: cut per-block dispatch overhead (part 1)

Richard Henderson posted 2 patches 1 week, 2 days ago
accel/tcg/internal-common.h   | 11 +++++++++--
include/accel/accel-cpu-ops.h |  2 +-
include/system/hvf_int.h      |  2 +-
include/system/tcg.h          | 12 ++++++++++++
accel/hvf/hvf-accel-ops.c     |  3 +--
accel/kvm/kvm-accel-ops.c     |  4 ++--
accel/tcg/cpu-exec-common.c   | 33 ++++++++++++++++++++++++++++++---
accel/tcg/cpu-exec.c          |  3 +++
accel/tcg/tcg-accel-ops.c     |  2 ++
cpu-target.c                  |  5 ++++-
monitor/hmp-cmds.c            |  7 +++++++
system/runstate-hmp-cmds.c    | 18 ++++++++++++------
12 files changed, 84 insertions(+), 18 deletions(-)
[PATCH v6 0/2] accel/tcg: cut per-block dispatch overhead (part 1)
Posted by Richard Henderson 1 week, 2 days ago
Splitting Matt's larger patch set:

> 1  accel/tcg: fold the dynamic cflags into CPUState::tcg_cflags
>
>    curr_cflags() recomputed three unlikely tests on every one of the run's
>    8.4 billion dispatches, from state that changes only when gdb enables
>    single-step, when one-insn-per-tb is toggled, or when the log mask
>    moves. Fold each into tcg_cflags where it changes.          -5.15%

Changes in v6:
  - Use update_guest_debug in system mode, rather than a tcg-specific hack
    in cpu_single_step.  This would also be required for split-accel, if
    and when that project gets regoing.

    Unfortunately, cpus_get_accel() can't be used in user mode, so
    fix things with an ifdef.

  - Hide other cflags updates behind tcg_enabled(), so that even if
    tcg is built in, we don't use it when using virtualization.
    This also means we don't need stubs, because tcg_enabled() will
    reduce to constant false with --disable-tcg.


r~


Matt Turner (1):
  accel/tcg: fold the dynamic cflags into CPUState::tcg_cflags

Richard Henderson (1):
  accel: Change AccelOpsClass.update_guest_debug to void

 accel/tcg/internal-common.h   | 11 +++++++++--
 include/accel/accel-cpu-ops.h |  2 +-
 include/system/hvf_int.h      |  2 +-
 include/system/tcg.h          | 12 ++++++++++++
 accel/hvf/hvf-accel-ops.c     |  3 +--
 accel/kvm/kvm-accel-ops.c     |  4 ++--
 accel/tcg/cpu-exec-common.c   | 33 ++++++++++++++++++++++++++++++---
 accel/tcg/cpu-exec.c          |  3 +++
 accel/tcg/tcg-accel-ops.c     |  2 ++
 cpu-target.c                  |  5 ++++-
 monitor/hmp-cmds.c            |  7 +++++++
 system/runstate-hmp-cmds.c    | 18 ++++++++++++------
 12 files changed, 84 insertions(+), 18 deletions(-)

-- 
2.53.0