[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 291987: trace: expand mem_info:size_shift to 4 bits,
Peter Maydell <=