[PATCH 0/8] plugins/next: bugfixs and iops based time control RFC

Alex Bennée posted 8 patches 11 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230519170454.2353945-1-alex.bennee@linaro.org
Maintainers: Thomas Huth <thuth@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Riku Voipio <riku.voipio@iki.fi>, "Alex Bennée" <alex.bennee@linaro.org>, Alexandre Iooss <erdnaxe@crans.org>, Mahmoud Mandour <ma.mandourr@gmail.com>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Yanan Wang <wangyanan55@huawei.com>, Peter Maydell <peter.maydell@linaro.org>
include/exec/cpu-all.h                        |   2 +-
include/hw/core/cpu.h                         |  17 ++
include/qemu/qemu-plugin.h                    |  19 ++
include/qemu/timer.h                          |  15 +
include/sysemu/accel-ops.h                    |  18 +-
include/sysemu/cpu-timers.h                   |   3 +-
include/sysemu/qtest.h                        |   1 +
accel/qtest/qtest.c                           |   1 +
accel/tcg/cputlb.c                            |   4 +-
accel/tcg/user-exec.c                         |   6 +-
contrib/plugins/cache.c                       |   2 +-
contrib/plugins/drcov.c                       |   2 +-
contrib/plugins/execlog.c                     |   2 +-
contrib/plugins/hotblocks.c                   |   2 +-
contrib/plugins/hotpages.c                    |   2 +-
contrib/plugins/howvec.c                      |   2 +-
contrib/plugins/hwprofile.c                   |   2 +-
contrib/plugins/iops.c                        | 260 ++++++++++++++++++
contrib/plugins/lockstep.c                    |   4 +-
plugins/api.c                                 |  22 ++
softmmu/cpus.c                                |  11 +
softmmu/qtest.c                               |  26 +-
...t-virtual-clock.c => cpus-virtual-clock.c} |   5 +
target/arm/tcg/sve_helper.c                   |   4 -
tests/plugin/bb.c                             |   2 +-
tests/plugin/insn.c                           |   2 +-
tests/plugin/mem.c                            |   2 +-
tests/plugin/syscall.c                        |   2 +-
util/qemu-timer.c                             |  26 ++
contrib/plugins/Makefile                      |   1 +
plugins/qemu-plugins.symbols                  |   2 +
stubs/meson.build                             |   2 +-
tests/tcg/aarch64/Makefile.target             |   8 +
33 files changed, 433 insertions(+), 46 deletions(-)
create mode 100644 contrib/plugins/iops.c
rename stubs/{cpus-get-virtual-clock.c => cpus-virtual-clock.c} (68%)
[PATCH 0/8] plugins/next: bugfixs and iops based time control RFC
Posted by Alex Bennée 11 months, 3 weeks ago
Hi,

There are a couple of bug fixes in here but also the RFC for exposing
time control to the plugin. Its very rough and ready and I've not done
very many tests on the stability of the time slowing down but reducing
the iops value does seem to at least get reflected in slower dhrystone
scores.

Alex.

Alex Bennée (8):
  plugins: force slow path when plugins instrument memory ops
  plugins: fix memory leak while parsing options
  plugins: update lockstep to use g_memdup2
  sysemu: add set_virtual_time to accel ops
  qtest: use cpu interface in qtest_clock_warp
  sysemu: generalise qtest_warp_clock as qemu_clock_advance_virtual_time
  plugins: add time control API
  contrib/plugins: add iops plugin example for cost modelling

 include/exec/cpu-all.h                        |   2 +-
 include/hw/core/cpu.h                         |  17 ++
 include/qemu/qemu-plugin.h                    |  19 ++
 include/qemu/timer.h                          |  15 +
 include/sysemu/accel-ops.h                    |  18 +-
 include/sysemu/cpu-timers.h                   |   3 +-
 include/sysemu/qtest.h                        |   1 +
 accel/qtest/qtest.c                           |   1 +
 accel/tcg/cputlb.c                            |   4 +-
 accel/tcg/user-exec.c                         |   6 +-
 contrib/plugins/cache.c                       |   2 +-
 contrib/plugins/drcov.c                       |   2 +-
 contrib/plugins/execlog.c                     |   2 +-
 contrib/plugins/hotblocks.c                   |   2 +-
 contrib/plugins/hotpages.c                    |   2 +-
 contrib/plugins/howvec.c                      |   2 +-
 contrib/plugins/hwprofile.c                   |   2 +-
 contrib/plugins/iops.c                        | 260 ++++++++++++++++++
 contrib/plugins/lockstep.c                    |   4 +-
 plugins/api.c                                 |  22 ++
 softmmu/cpus.c                                |  11 +
 softmmu/qtest.c                               |  26 +-
 ...t-virtual-clock.c => cpus-virtual-clock.c} |   5 +
 target/arm/tcg/sve_helper.c                   |   4 -
 tests/plugin/bb.c                             |   2 +-
 tests/plugin/insn.c                           |   2 +-
 tests/plugin/mem.c                            |   2 +-
 tests/plugin/syscall.c                        |   2 +-
 util/qemu-timer.c                             |  26 ++
 contrib/plugins/Makefile                      |   1 +
 plugins/qemu-plugins.symbols                  |   2 +
 stubs/meson.build                             |   2 +-
 tests/tcg/aarch64/Makefile.target             |   8 +
 33 files changed, 433 insertions(+), 46 deletions(-)
 create mode 100644 contrib/plugins/iops.c
 rename stubs/{cpus-get-virtual-clock.c => cpus-virtual-clock.c} (68%)

-- 
2.39.2