This is my own respin of Lluís' v7: https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg02741.html
Changes from v7: - Ported to current dev tree. - Allocate cpu->trace_dstate statically. This * allows us to drop the event_count inline patch. * simplifies and improves the performance of accessing cpu->trace_dstate: we just need to dereference, instead of going through bitmap_copy and an intermediate unsigned long. - If we try to register more CPU events than the max we support (there's a constant for it), drop the event and tell the user with error_report. But really this is a bug, since we control what CPU events are traceable. Should we abort() as well? - Added rth's R-b tag - Addressed my own comments: * rename tb->trace_vcpu_dstate to the shorter tb->trace_ds * use uint32_t for tb->trace_ds instead of a typedef * add BUILD_BUG_ON check to make sure tb->trace_ds is big enough * fix xxhash - Do not add trace_dstate to tb_htable_lookup, since we can grab it from cpu->trace_dstate. This patchset applies cleanly on top of rth's tcg-next (a01792e1e). Thanks, Emilio Emilio G. Cota (1): cpu: allocate cpu->trace_dstate in place Lluís Vilanova (6): exec: [tcg] Refactor flush of per-CPU virtual TB cache trace: [tcg] Delay changes to dynamic state when translating exec: [tcg] Use different TBs according to the vCPU's dynamic tracing state trace: [tcg] Do not generate TCG code to trace dinamically-disabled events trace: [tcg, trivial] Re-align generated code trace: [trivial] Statically enable all guest events cpu-exec.c | 8 ++++++-- cputlb.c | 2 +- include/exec/exec-all.h | 9 +++++++++ include/exec/tb-hash-xx.h | 7 +++++-- include/exec/tb-hash.h | 5 +++-- include/qom/cpu.h | 12 ++++++------ qom/cpu.c | 8 -------- scripts/tracetool/__init__.py | 3 ++- scripts/tracetool/backend/dtrace.py | 4 ++-- scripts/tracetool/backend/ftrace.py | 20 ++++++++++---------- scripts/tracetool/backend/log.py | 19 ++++++++++--------- scripts/tracetool/backend/simple.py | 4 ++-- scripts/tracetool/backend/syslog.py | 6 +++--- scripts/tracetool/backend/ust.py | 4 ++-- scripts/tracetool/format/h.py | 26 +++++++++++++++++++------- scripts/tracetool/format/tcg_h.py | 21 +++++++++++++++++---- scripts/tracetool/format/tcg_helper_c.py | 5 +++-- tcg-runtime.c | 3 ++- tests/qht-bench.c | 2 +- trace-events | 6 +++--- trace/control-target.c | 22 +++++++++++++++++++--- trace/control.c | 9 ++++++++- trace/control.h | 3 +++ translate-all.c | 25 ++++++++++++++++++------- 24 files changed, 154 insertions(+), 79 deletions(-) -- 2.7.4