qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 291987: trace: expand mem_info:size_shift to


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 291987: trace: expand mem_info:size_shift to 4 bits
Date: Wed, 30 Oct 2019 16:24:11 +0000 (UTC)

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 291987c3068fb083abebb69701d04c5bab60f310
      
https://github.com/qemu/qemu/commit/291987c3068fb083abebb69701d04c5bab60f310
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M trace-events
    M trace/mem-internal.h

  Log Message:
  -----------
  trace: expand mem_info:size_shift to 4 bits

This will allow us to trace 32k-long memory accesses (although our
maximum is something like 256 bytes at the moment).

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: expanded to 3->4 bits]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 504f73f7b3724c885317b6b236620e9048f50c0a
      
https://github.com/qemu/qemu/commit/504f73f7b3724c885317b6b236620e9048f50c0a
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/atomic_template.h
    M accel/tcg/cputlb.c
    M accel/tcg/user-exec.c
    M include/exec/cpu_ldst_template.h
    M include/exec/cpu_ldst_useronly_template.h
    M scripts/tracetool/transform.py
    M tcg/tcg-op.c
    M trace-events
    M trace/mem-internal.h
    M trace/mem.h

  Log Message:
  -----------
  trace: add mmu_index to mem_info

We are going to re-use mem_info later for plugins and will need to
track the mmu_idx for softmmu code.

Signed-off-by: Alex Bennée <address@hidden>


  Commit: cfbc3c6083dbdd0fdd9cc98965182e79431d3c63
      
https://github.com/qemu/qemu/commit/cfbc3c6083dbdd0fdd9cc98965182e79431d3c63
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/cpu-exec.c
    M cpus-common.c
    M include/hw/core/cpu.h

  Log Message:
  -----------
  cpu: introduce cpu_in_exclusive_context()

Suggested-by: Alex Bennée <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: moved inside start/end_exclusive fns + cleanup]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 136094d0b22a3278029485648e4d83a4bf3cb4d6
      
https://github.com/qemu/qemu/commit/136094d0b22a3278029485648e4d83a4bf3cb4d6
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/translate-all.c

  Log Message:
  -----------
  translate-all: use cpu_in_exclusive_work_context() in tb_flush

tb_flush will be called by the plugin module from a safe
work environment. Prepare for that.

Suggested-by: Alex Bennée <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 027e3332b80ade4bbef5603ce170c35deab5c41a
      
https://github.com/qemu/qemu/commit/027e3332b80ade4bbef5603ce170c35deab5c41a
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M docs/devel/index.rst
    A docs/devel/plugins.rst

  Log Message:
  -----------
  docs/devel: add plugins.rst design document

This is mostly extracted from Emilio's more verbose commit comments
with some additional verbiage from me.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 975c455346f9aaabe044252a3960be1a2b4ed27b
      
https://github.com/qemu/qemu/commit/975c455346f9aaabe044252a3960be1a2b4ed27b
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    A include/qemu/qemu-plugin.h

  Log Message:
  -----------
  plugin: add user-facing API

Add the API first to ease review.

Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 54cb65d8588b67853a8898eb73e82d76c1a1e2e1
      
https://github.com/qemu/qemu/commit/54cb65d8588b67853a8898eb73e82d76c1a1e2e1
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M Makefile
    M Makefile.target
    M configure
    M include/hw/core/cpu.h
    A include/qemu/plugin.h
    A plugins/Makefile.objs
    A plugins/core.c
    A plugins/loader.c
    A plugins/plugin.h

  Log Message:
  -----------
  plugin: add core code

Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: moved directory and merged various fixes]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 5c5d69b0d523ad335b901800fc443aec77ec4688
      
https://github.com/qemu/qemu/commit/5c5d69b0d523ad335b901800fc443aec77ec4688
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/qemu/qemu-plugin.h
    M plugins/Makefile.objs
    A plugins/api.c

  Log Message:
  -----------
  plugin: add implementation of the api

[AJB: split from the core code commit]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 050ec8cc18f020b3231db3311241cd3534e7a15f
      
https://github.com/qemu/qemu/commit/050ec8cc18f020b3231db3311241cd3534e7a15f
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/qemu/queue.h

  Log Message:
  -----------
  queue: add QTAILQ_REMOVE_SEVERAL

This is faster than removing elements one by one.

Will gain a user soon.

Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 8c01eb78c6c4706ae85f6f1183fe87f9afc62732
      
https://github.com/qemu/qemu/commit/8c01eb78c6c4706ae85f6f1183fe87f9afc62732
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/exec/exec-all.h

  Log Message:
  -----------
  cputlb: document get_page_addr_code

Suggested-by: Alex Bennée <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 4b2190dabd1fe1db5e07732de311662382d40fb9
      
https://github.com/qemu/qemu/commit/4b2190dabd1fe1db5e07732de311662382d40fb9
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/cputlb.c
    M include/exec/exec-all.h

  Log Message:
  -----------
  cputlb: introduce get_page_addr_code_hostp

This will be used by plugins to get the host address
of instructions.

Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: c87fb14fde63071234afc984ec76181f33751a13
      
https://github.com/qemu/qemu/commit/c87fb14fde63071234afc984ec76181f33751a13
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tcg/tcg-op.h

  Log Message:
  -----------
  tcg: add tcg_gen_st_ptr

Will gain a user soon.

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 38b47b19ec3adf6a96d68726dc29096b3aad780a
      
https://github.com/qemu/qemu/commit/38b47b19ec3adf6a96d68726dc29096b3aad780a
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/Makefile.objs
    A accel/tcg/plugin-gen.c
    A accel/tcg/plugin-helpers.h
    M include/exec/helper-gen.h
    M include/exec/helper-proto.h
    M include/exec/helper-tcg.h
    A include/exec/plugin-gen.h
    M tcg/tcg-op.h
    M tcg/tcg-opc.h
    M tcg/tcg.c
    M tcg/tcg.h

  Log Message:
  -----------
  plugin-gen: add module for TCG-related code

We first inject empty instrumentation from translator_loop.
After translation, we go through the plugins to see what
they want to register for, filling in the empty instrumentation.
If if turns out that some instrumentation remains unused, we
remove it.

This approach supports the following features:

- Inlining TCG code for simple operations. Note that we do not
  export TCG ops to plugins. Instead, we give them a C API to
  insert inlined ops. So far we only support adding an immediate
  to a u64, e.g. to count events.

- "Direct" callbacks. These are callbacks that do not go via
  a helper. Instead, the helper is defined at run-time, so that
  the plugin code is directly called from TCG. This makes direct
  callbacks as efficient as possible; they are therefore used
  for very frequent events, e.g. memory callbacks.

- Passing the host address to memory callbacks. Most of this
  is implemented in a later patch though.

- Instrumentation of memory accesses performed from helpers.
  See the corresponding comment, as well as a later patch.

Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: add alloc_tcg_plugin_context, use glib, rm hwaddr]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: cfec388518d299e77d26b93d92c33442f4daa62b
      
https://github.com/qemu/qemu/commit/cfec388518d299e77d26b93d92c33442f4daa62b
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    A accel/tcg/atomic_common.inc.c
    M accel/tcg/atomic_template.h
    M accel/tcg/cputlb.c
    M accel/tcg/user-exec.c

  Log Message:
  -----------
  atomic_template: add inline trace/plugin helpers

In preparation for plugin support.

Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: e6d86bed50d20101c565e149c33e07a5cc764c72
      
https://github.com/qemu/qemu/commit/e6d86bed50d20101c565e149c33e07a5cc764c72
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/atomic_common.inc.c
    M accel/tcg/atomic_template.h
    M accel/tcg/cpu-exec.c
    M include/exec/cpu-defs.h
    M include/exec/cpu_ldst_template.h
    M include/exec/cpu_ldst_useronly_template.h
    M tcg/tcg-op.c
    M tcg/tcg.h

  Log Message:
  -----------
  tcg: let plugins instrument virtual memory accesses

To capture all memory accesses we need hook into all the various
helper functions that are involved in memory operations as well as the
injected inline helper calls. A later commit will allow us to resolve
the actual guest HW addresses by replaying the lookup.

Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: drop haddr handling, just deal in vaddr]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 235537fa7347a151ebd7a755e81819a52b3b2195
      
https://github.com/qemu/qemu/commit/235537fa7347a151ebd7a755e81819a52b3b2195
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/cputlb.c
    A include/qemu/plugin-memory.h
    M include/qemu/qemu-plugin.h
    M plugins/api.c

  Log Message:
  -----------
  plugins: implement helpers for resolving hwaddr

We need to keep a local per-cpu copy of the data as other threads may
be running. Currently we can provide insight as to if the access was
IO or not and give the offset into a given device (usually the main
RAMBlock). We store enough information to get details such as the
MemoryRegion which might be useful in later expansions to the API.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 5025bb7fde57de2fa76d3ed4277b8b4aaa1b1a69
      
https://github.com/qemu/qemu/commit/5025bb7fde57de2fa76d3ed4277b8b4aaa1b1a69
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/translate-all.c

  Log Message:
  -----------
  translate-all: notify plugin code of tb_flush

Plugins might allocate per-TB data that then they get passed each
time a TB is executed (via the *userdata pointer).

Notify plugin code every time a code cache flush occurs, so
that plugins can then reclaim the memory of the per-TB data.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 8634d77bdb1df00972159fefe5caf1d28911f05f
      
https://github.com/qemu/qemu/commit/8634d77bdb1df00972159fefe5caf1d28911f05f
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M bsd-user/syscall.c
    M linux-user/exit.c

  Log Message:
  -----------
  *-user: notify plugin of exit

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: c36f7a642cd81cff566ffe23e0a863ac4d7f1f91
      
https://github.com/qemu/qemu/commit/c36f7a642cd81cff566ffe23e0a863ac4d7f1f91
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M bsd-user/syscall.c
    A include/user/syscall-trace.h
    M linux-user/syscall.c

  Log Message:
  -----------
  *-user: plugin syscalls

To avoid too much duplication add a wrapper that the existing trace
and the new plugin calls can live in. We could move the -strace code
here as well but that is left for a future series as the code is
subtly different between the bsd and linux.

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
[AJB: wrap in syscall-trace.h, expand commit msg]
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 30865f316856cc346f4af7ec28586c4a636b0109
      
https://github.com/qemu/qemu/commit/30865f316856cc346f4af7ec28586c4a636b0109
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M cpus.c
    M exec.c
    M hw/core/cpu.c

  Log Message:
  -----------
  cpu: hook plugin vcpu events

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 763f7e12090fa8a4f4d1902a51c7d5ac7c454090
      
https://github.com/qemu/qemu/commit/763f7e12090fa8a4f4d1902a51c7d5ac7c454090
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/exec/plugin-gen.h

  Log Message:
  -----------
  plugin-gen: add plugin_insn_append

By adding it to plugin-gen's header file, we can export is as
an inline, since tcg.h is included in the header (we need tcg_ctx).

Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: use g_byte_array]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 7dec71d5ff06493184352cec5ec6332889128e3e
      
https://github.com/qemu/qemu/commit/7dec71d5ff06493184352cec5ec6332889128e3e
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/cputlb.c
    M include/exec/cpu_ldst_template.h
    M target/cris/translate_v10.inc.c
    M tcg/tcg.h

  Log Message:
  -----------
  cputlb: ensure _cmmu helper functions follow the naming standard

We document this in docs/devel/load-stores.rst so lets follow it. The
32 bit and 64 bit access functions have historically not included the
sign so we leave those as is. We also introduce some signed helpers
which are used for loading immediate values in the translator.

Fixes: 282dffc8
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 409c1a0bf0f1e0bf1548004d87e8ba229022193d
      
https://github.com/qemu/qemu/commit/409c1a0bf0f1e0bf1548004d87e8ba229022193d
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/exec/cpu_ldst.h
    M include/exec/translator.h

  Log Message:
  -----------
  translator: add translator_ld{ub,sw,uw,l,q}

We don't bother with replicating the fast path (tlb_hit) of the old
cpu_ldst helpers as it has no measurable effect on performance. This
probably indicates we should consider flattening the whole set of
helpers but that is out of scope for this change.

Suggested-by: Richard Henderson <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: directly plumb into softmmu/user helpers]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: ae82adc8e29bc73f799a0263b9729e5eb3f0cf79
      
https://github.com/qemu/qemu/commit/ae82adc8e29bc73f799a0263b9729e5eb3f0cf79
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/arm/arm_ldst.h

  Log Message:
  -----------
  target/arm: fetch code with translator_ld

Now the arm_ld*_code functions are only used at translate time we can
just pass down to translator_ld functions.

Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: convert from plugin_insn_append to translator_ld]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 23f42b6053442bf3596ed0f0b4105374d7b4628b
      
https://github.com/qemu/qemu/commit/23f42b6053442bf3596ed0f0b4105374d7b4628b
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/ppc/translate.c

  Log Message:
  -----------
  target/ppc: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Acked-by: David Gibson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: da94123fe1803bc9bc0cc38720224efe4b1a9491
      
https://github.com/qemu/qemu/commit/da94123fe1803bc9bc0cc38720224efe4b1a9491
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/sh4/translate.c

  Log Message:
  -----------
  target/sh4: fetch code with translator_ld

There is a small wrinkle with the gUSA instruction. The translator
effectively treats a (known) gUSA sequence as a single instruction.
For the purposes of the plugin we end up with a long multi-instruction
qemu_plugin_insn.

If the known sequence isn't detected we shall never run this
translation anyway.

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: aaf4b62e19d7d8af1d3e2fe15985abf2f55f98fd
      
https://github.com/qemu/qemu/commit/aaf4b62e19d7d8af1d3e2fe15985abf2f55f98fd
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/i386/translate.c

  Log Message:
  -----------
  target/i386: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: d3733cbbeebb80fbd6b0352356608e304b2d2911
      
https://github.com/qemu/qemu/commit/d3733cbbeebb80fbd6b0352356608e304b2d2911
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/hppa/translate.c

  Log Message:
  -----------
  target/hppa: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 87892c64bc9527b6eb209b41de6e6f23b786ee6e
      
https://github.com/qemu/qemu/commit/87892c64bc9527b6eb209b41de6e6f23b786ee6e
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/m68k/translate.c

  Log Message:
  -----------
  target/m68k: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: e2790babdeebb1c83c607b8d59d89b33ef90522c
      
https://github.com/qemu/qemu/commit/e2790babdeebb1c83c607b8d59d89b33ef90522c
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/alpha/translate.c

  Log Message:
  -----------
  target/alpha: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 4b9fa0b4fadfe645e812f808a9b96adeb1ecdb20
      
https://github.com/qemu/qemu/commit/4b9fa0b4fadfe645e812f808a9b96adeb1ecdb20
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/riscv/translate.c

  Log Message:
  -----------
  target/riscv: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Acked-by: Palmer Dabbelt <address@hidden>


  Commit: b89b90010314aceca22f641dfd5dc5a40fb1bc6a
      
https://github.com/qemu/qemu/commit/b89b90010314aceca22f641dfd5dc5a40fb1bc6a
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/sparc/translate.c

  Log Message:
  -----------
  target/sparc: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 4d246bb435f43b12a3f0f7fce81310fcf302e406
      
https://github.com/qemu/qemu/commit/4d246bb435f43b12a3f0f7fce81310fcf302e406
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/xtensa/translate.c

  Log Message:
  -----------
  target/xtensa: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 7f93879e44491323224b7b9789a98b20905c894d
      
https://github.com/qemu/qemu/commit/7f93879e44491323224b7b9789a98b20905c894d
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M target/openrisc/translate.c

  Log Message:
  -----------
  target/openrisc: fetch code with translator_ld

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 6ba6f8182170b3a3bcf14112f16d0049321c1b10
      
https://github.com/qemu/qemu/commit/6ba6f8182170b3a3bcf14112f16d0049321c1b10
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/tcg/translator.c

  Log Message:
  -----------
  translator: inject instrumentation from plugins

Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 40e8c6f48afc35998f15960e0299ecb7f8a9f3e5
      
https://github.com/qemu/qemu/commit/40e8c6f48afc35998f15960e0299ecb7f8a9f3e5
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: add --enable-plugins

This adds the basic boilerplate feature enable option for the build.
We shall expand it later.

[AJB: split from larger patch]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 26fffe29c09656273fd9553339552f8d41330949
      
https://github.com/qemu/qemu/commit/26fffe29c09656273fd9553339552f8d41330949
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M Makefile
    M configure
    A plugins/.gitignore
    M plugins/Makefile.objs
    A plugins/qemu-plugins.symbols

  Log Message:
  -----------
  plugin: add API symbols to qemu-plugins.symbols

Signed-off-by: Emilio G. Cota <address@hidden>
[AJB: moved into plugins]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 5901b2e15b673720b050fc88e7912e33f0e53604
      
https://github.com/qemu/qemu/commit/5901b2e15b673720b050fc88e7912e33f0e53604
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/qemu/qemu-plugin.h
    M plugins/loader.c

  Log Message:
  -----------
  plugin: expand the plugin_init function to include an info block

This provides a limited amount of info to plugins about the guest
system that will allow them to make some additional decisions on
setup.

Signed-off-by: Alex Bennée <address@hidden>


  Commit: cbafa2362ab8d96af39d6b01a79ea4ed16d47dda
      
https://github.com/qemu/qemu/commit/cbafa2362ab8d96af39d6b01a79ea4ed16d47dda
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M disas.c
    M include/disas/disas.h
    M include/qemu/qemu-plugin.h
    M plugins/api.c
    M plugins/qemu-plugins.symbols

  Log Message:
  -----------
  plugin: add qemu_plugin_insn_disas helper

Give the plugins access to the QEMU dissasembler so they don't have to
re-invent the wheel. We generate a warning when there are spare bytes
in the decode buffer. This is usually due to the front end loading in
more bytes than decoded.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: ca76a66975f018c323cb609c0c55a4c8d4acde3b
      
https://github.com/qemu/qemu/commit/ca76a66975f018c323cb609c0c55a4c8d4acde3b
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/qemu/log.h
    M include/qemu/qemu-plugin.h
    M plugins/api.c
    M plugins/qemu-plugins.symbols
    M util/log.c

  Log Message:
  -----------
  plugin: add qemu_plugin_outs helper

Having the plugins grab stdout and spew stuff there is a bit ugly and
certainly makes the tests look ugly. Provide a hook back into QEMU
which can be redirected as needed.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Aaron Lindsay <address@hidden>


  Commit: 42229a753908a0ab6672209535f644e3aaceb8ab
      
https://github.com/qemu/qemu/commit/42229a753908a0ab6672209535f644e3aaceb8ab
  Author: Lluís Vilanova <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M qemu-options.hx
    M vl.c

  Log Message:
  -----------
  vl: support -plugin option

Signed-off-by: Lluís Vilanova <address@hidden>
[ cota: s/instrument/plugin ]
Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: f308f64e760abfaa1cf343a3a213951aacba6d26
      
https://github.com/qemu/qemu/commit/f308f64e760abfaa1cf343a3a213951aacba6d26
  Author: Lluís Vilanova <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M linux-user/main.c

  Log Message:
  -----------
  linux-user: support -plugin option

Signed-off-by: Lluís Vilanova <address@hidden>
[ cota: s/instrument/plugin ]
Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>


  Commit: 671f760b93ba4b0f5e5c84986b63c9b153509ecf
      
https://github.com/qemu/qemu/commit/671f760b93ba4b0f5e5c84986b63c9b153509ecf
  Author: Emilio G. Cota <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M configure
    A tests/plugin/Makefile
    A tests/plugin/bb.c
    A tests/plugin/empty.c
    A tests/plugin/insn.c
    A tests/plugin/mem.c

  Log Message:
  -----------
  tests/plugin: add sample plugins

Pass arguments with -plugin=libfoo.so,arg=bar,arg=baz

Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 899ba5edd86c255a41332bdcb83f24263d95e467
      
https://github.com/qemu/qemu/commit/899ba5edd86c255a41332bdcb83f24263d95e467
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/tcg/Makefile.target

  Log Message:
  -----------
  tests/tcg/Makefile.target: fix path to config-host.mak

Since moving where the tests are run the path to config-host.mak has
been wrong. This doesn't affect much but things like the time fallback
for CONFIG_DEBUG_TCG and will also get in the way of checking for
PLUGINS support.

Fixes: fc76c56d3f4
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 02f903140b777a6325fc4f83ddf1126f71efa38a
      
https://github.com/qemu/qemu/commit/02f903140b777a6325fc4f83ddf1126f71efa38a
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/tcg/cris/Makefile.target

  Log Message:
  -----------
  tests/tcg: set QEMU_OPTS for all cris runs

This will important for ensuring the plugin test variants will also
work.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 1852f3e486fd64dc59043fff6e487537ded0bb72
      
https://github.com/qemu/qemu/commit/1852f3e486fd64dc59043fff6e487537ded0bb72
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/tcg/Makefile.target
    M tests/tcg/aarch64/Makefile.softmmu-target

  Log Message:
  -----------
  tests/tcg: move "virtual" tests to EXTRA_TESTS

Otherwise clever expanders like the plugins test get unstuck.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: eba9ccf8f8d15f3790dbeb475091ea51b1ac3656
      
https://github.com/qemu/qemu/commit/eba9ccf8f8d15f3790dbeb475091ea51b1ac3656
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/tcg/i386/Makefile.target

  Log Message:
  -----------
  tests/tcg: drop test-i386-fprem from TESTS when not SLOW

This is a very slow running test which we only enable explicitly.
However having it in the TESTS lists would confuse additional tests
like the plugins test which want to run on all currently enabled
tests.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 3089e74e6710ee531dd961cbc373718f99e74afc
      
https://github.com/qemu/qemu/commit/3089e74e6710ee531dd961cbc373718f99e74afc
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/Makefile.include
    M tests/tcg/Makefile.target
    M tests/tcg/aarch64/Makefile.target
    M tests/tcg/arm/Makefile.softmmu-target
    M tests/tcg/arm/Makefile.target

  Log Message:
  -----------
  tests/tcg: enable plugin testing

If CONFIG_PLUGINS is enabled then lets enable testing for all our TCG
targets. This is a simple smoke test that ensure we don't crash or
otherwise barf out by running each plugin against each test.

There is a minor knock on effect for additional runners which need
specialised QEMU_OPTS which will also need to declare a plugin version
of the runner. If this gets onerous we might need to add another
helper.

Checking the results of the plugins is left for a later exercise.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: a208ba09bdcde1fd6b11793f3d76f3dd22792f87
      
https://github.com/qemu/qemu/commit/a208ba09bdcde1fd6b11793f3d76f3dd22792f87
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/plugin/Makefile
    A tests/plugin/hotblocks.c

  Log Message:
  -----------
  tests/plugin: add a hotblocks plugin

This is a simple plugin to track which translation blocks are call
most often. As we don't have a view of the internals of TCG we can
only work by the address of the start of the block so we also need to
tracks how often the address is translated.

As there will be multiple blocks starting at the same address. We can
try and work around this by futzing the value to feed to the hash with
the insn count.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: f79e8fa3b7b6226e1e17359fd8039fcf4486997e
      
https://github.com/qemu/qemu/commit/f79e8fa3b7b6226e1e17359fd8039fcf4486997e
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/plugin/Makefile
    A tests/plugin/howvec.c

  Log Message:
  -----------
  tests/plugin: add instruction execution breakdown

This gives a break down of instruction classes and individual
instruction types.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 12268df393726e4edea62d36fa98b7f4ddd388c5
      
https://github.com/qemu/qemu/commit/12268df393726e4edea62d36fa98b7f4ddd388c5
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M tests/plugin/Makefile
    A tests/plugin/hotpages.c

  Log Message:
  -----------
  tests/plugin: add hotpages to analyse memory access patterns

This plugin gives a summary of access patterns grouped by "pages" and
showing read/write patterns by vCPUS.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: e4fbd37fc03c897e1824ae54bb044d27f8d1a083
      
https://github.com/qemu/qemu/commit/e4fbd37fc03c897e1824ae54bb044d27f8d1a083
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M accel/stubs/tcg-stub.c

  Log Message:
  -----------
  accel/stubs: reduce headers from tcg-stub

We don't need much for these. However I do wonder why these aren't
just null inlines in exec-all.h

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: dc069b22a1c2fe988ad58fa9de7d768bf67cc9a0
      
https://github.com/qemu/qemu/commit/dc069b22a1c2fe988ad58fa9de7d768bf67cc9a0
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M include/exec/exec-all.h

  Log Message:
  -----------
  include/exec: wrap cpu_ldst.h in CONFIG_TCG

This gets around a build problem with --disable-tcg.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: 4fbddb5d965837c85ba23b06b346b10dd294d5ff
      
https://github.com/qemu/qemu/commit/4fbddb5d965837c85ba23b06b346b10dd294d5ff
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  .travis.yml: add --enable-plugins tests

check-tcg will automatically run the plugins against most TCG tests if
it is enabled in the build. We exclude sparc64-linux-user for now as
there are pending patches that need to be merged fixing it's fork
implementation.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>


  Commit: ca68668d27ea024fb7bbb7baf2c573550181ec23
      
https://github.com/qemu/qemu/commit/ca68668d27ea024fb7bbb7baf2c573550181ec23
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M scripts/checkpatch.pl

  Log Message:
  -----------
  scripts/checkpatch.pl: don't complain about (foo, /* empty */)

It's quite common to have a mini comment inside braces to acknowledge
we know it's empty. Expand the inline detection to allow closing
braces before the end of line.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Aaron Lindsay <address@hidden>


  Commit: 22b5867b732873203b8b21af5322668103002ca5
      
https://github.com/qemu/qemu/commit/22b5867b732873203b8b21af5322668103002ca5
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: add me for the TCG plugins code

Signed-off-by: Alex Bennée <address@hidden>


  Commit: 19633df89bfc609569bb693e2e33eb1a68d35e0e
      
https://github.com/qemu/qemu/commit/19633df89bfc609569bb693e2e33eb1a68d35e0e
  Author: Alex Bennée <address@hidden>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  travis.yml: enable linux-gcc-debug-tcg cache

Create a new cache for the --enable-debug-tcg builds which is separate
from the normal debug builds which generate different code. We also
enable debug-tcg for the new plugins based builds as we want to ensure
any breakage to TCG is picked up by the sanity checks.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 68d8ef4ec540682c3538d4963e836e43a211dd17
      
https://github.com/qemu/qemu/commit/68d8ef4ec540682c3538d4963e836e43a211dd17
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-30 (Wed, 30 Oct 2019)

  Changed paths:
    M .travis.yml
    M MAINTAINERS
    M Makefile
    M Makefile.target
    M accel/stubs/tcg-stub.c
    M accel/tcg/Makefile.objs
    A accel/tcg/atomic_common.inc.c
    M accel/tcg/atomic_template.h
    M accel/tcg/cpu-exec.c
    M accel/tcg/cputlb.c
    A accel/tcg/plugin-gen.c
    A accel/tcg/plugin-helpers.h
    M accel/tcg/translate-all.c
    M accel/tcg/translator.c
    M accel/tcg/user-exec.c
    M bsd-user/syscall.c
    M configure
    M cpus-common.c
    M cpus.c
    M disas.c
    M docs/devel/index.rst
    A docs/devel/plugins.rst
    M exec.c
    M hw/core/cpu.c
    M include/disas/disas.h
    M include/exec/cpu-defs.h
    M include/exec/cpu_ldst.h
    M include/exec/cpu_ldst_template.h
    M include/exec/cpu_ldst_useronly_template.h
    M include/exec/exec-all.h
    M include/exec/helper-gen.h
    M include/exec/helper-proto.h
    M include/exec/helper-tcg.h
    A include/exec/plugin-gen.h
    M include/exec/translator.h
    M include/hw/core/cpu.h
    M include/qemu/log.h
    A include/qemu/plugin-memory.h
    A include/qemu/plugin.h
    A include/qemu/qemu-plugin.h
    M include/qemu/queue.h
    A include/user/syscall-trace.h
    M linux-user/exit.c
    M linux-user/main.c
    M linux-user/syscall.c
    A plugins/.gitignore
    A plugins/Makefile.objs
    A plugins/api.c
    A plugins/core.c
    A plugins/loader.c
    A plugins/plugin.h
    A plugins/qemu-plugins.symbols
    M qemu-options.hx
    M scripts/checkpatch.pl
    M scripts/tracetool/transform.py
    M target/alpha/translate.c
    M target/arm/arm_ldst.h
    M target/hppa/translate.c
    M target/i386/translate.c
    M target/m68k/translate.c
    M target/openrisc/translate.c
    M target/ppc/translate.c
    M target/riscv/translate.c
    M target/sh4/translate.c
    M target/sparc/translate.c
    M target/xtensa/translate.c
    M tcg/tcg-op.c
    M tcg/tcg-op.h
    M tcg/tcg-opc.h
    M tcg/tcg.c
    M tcg/tcg.h
    M tests/Makefile.include
    A tests/plugin/Makefile
    A tests/plugin/bb.c
    A tests/plugin/empty.c
    A tests/plugin/hotblocks.c
    A tests/plugin/hotpages.c
    A tests/plugin/howvec.c
    A tests/plugin/insn.c
    A tests/plugin/mem.c
    M tests/tcg/Makefile.target
    M tests/tcg/aarch64/Makefile.softmmu-target
    M tests/tcg/aarch64/Makefile.target
    M tests/tcg/arm/Makefile.softmmu-target
    M tests/tcg/arm/Makefile.target
    M tests/tcg/cris/Makefile.target
    M tests/tcg/i386/Makefile.target
    M trace-events
    M trace/mem-internal.h
    M trace/mem.h
    M util/log.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/stsquad/tags/pull-tcg-plugins-281019-4' 
into staging

TCG Plugins initial implementation

  - use --enable-plugins @ configure
  - low impact introspection (-plugin empty.so to measure overhead)
  - plugins cannot alter guest state
  - example plugins included in source tree (tests/plugins)
  - -d plugin to enable plugin output in logs
  - check-tcg runs extra tests when plugins enabled
  - documentation in docs/devel/plugins.rst

# gpg: Signature made Mon 28 Oct 2019 15:13:23 GMT
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <address@hidden>" 
[full]
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* remotes/stsquad/tags/pull-tcg-plugins-281019-4: (57 commits)
  travis.yml: enable linux-gcc-debug-tcg cache
  MAINTAINERS: add me for the TCG plugins code
  scripts/checkpatch.pl: don't complain about (foo, /* empty */)
  .travis.yml: add --enable-plugins tests
  include/exec: wrap cpu_ldst.h in CONFIG_TCG
  accel/stubs: reduce headers from tcg-stub
  tests/plugin: add hotpages to analyse memory access patterns
  tests/plugin: add instruction execution breakdown
  tests/plugin: add a hotblocks plugin
  tests/tcg: enable plugin testing
  tests/tcg: drop test-i386-fprem from TESTS when not SLOW
  tests/tcg: move "virtual" tests to EXTRA_TESTS
  tests/tcg: set QEMU_OPTS for all cris runs
  tests/tcg/Makefile.target: fix path to config-host.mak
  tests/plugin: add sample plugins
  linux-user: support -plugin option
  vl: support -plugin option
  plugin: add qemu_plugin_outs helper
  plugin: add qemu_plugin_insn_disas helper
  plugin: expand the plugin_init function to include an info block
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/62a23835b7c9...68d8ef4ec540



reply via email to

[Prev in Thread] Current Thread [Next in Thread]