NOTE: This series should complete the framework for guest code tracing. From here on, other series can concurrently add actual events and improve the guest code tracing features and performance (e.g., control tracing independently on each vCPU).
This series introduces the "vcpu" property for tracing events. This property identifies events that are tied to a particular virtual CPU (e.g., executing an instruction). Events with this property have an implicit vcpu argument, which is shown in the trace. In the case of events executed at TCG translation time, two implicit arguments are added: * The vCPU performing the code translation (shown in the translation-time trace) * The vCPU executing the translated code (shown in the execution-time trace) Note that the "vcpu" and "tcg" properties are not merged into a single one, since events can be defined that relate to a vCPU but are never raised from TCG code (e.g., interrupts). Changes in v5 ============= * Rebase on 357e81c. * Split from the previous (larger and more complex) v4 series. Changes in v4 ============= * Fix typo in commit message (Stefan Hajnoczi). * Simplify per-vCPU tracing state initialization (Stefan Hajnoczi). * Update copyright years. Changes in v3 ============= * Update QAPI version (Eric Blake). * Fix '#optional' annotation in QAPI (Eric Blake). Changes in v2 ============= * Rebase on 5522a84. * Improve patch descriptions. * Refactor code generation into a separate patch. * Fix forward declarations (Stefan Hajnoczi & Eduardo Habkost). * Fix "since" tags in QAPI interface (Eric Blake). * Unify QAPI/QMP interface with an optional 'vcpu' argument (Eric Blake). * Fix QMP+GTK header workaround (Stefan Hajnoczi). Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> Acked-by: Stefan Hajnoczi <stefa...@redhat.com> --- Lluís Vilanova (2): trace: Add support for vCPU pointers in trace events trace: Add 'vcpu' event property to trace guest vCPU docs/tracing.txt | 40 ++++++++++++++++++++++++++++++ include/qemu/typedefs.h | 1 + scripts/tracetool/__init__.py | 24 +++++++++++++++++- scripts/tracetool/format/h.py | 3 ++ scripts/tracetool/format/tcg_h.py | 13 ++++++++-- scripts/tracetool/format/ust_events_c.py | 1 + scripts/tracetool/transform.py | 9 ++++++- target-alpha/translate.c | 2 +- target-arm/translate.c | 2 +- target-arm/translate.h | 2 +- target-cris/translate.c | 2 +- target-i386/translate.c | 2 +- target-lm32/translate.c | 2 +- target-m68k/translate.c | 2 +- target-microblaze/translate.c | 2 +- target-mips/translate.c | 2 +- target-moxie/translate.c | 2 +- target-openrisc/translate.c | 2 +- target-ppc/translate.c | 2 +- target-s390x/translate.c | 2 +- target-sh4/translate.c | 2 +- target-sparc/translate.c | 5 ++-- target-tilegx/translate.c | 2 +- target-tricore/translate.c | 2 +- target-unicore32/translate.c | 2 +- target-xtensa/translate.c | 2 +- tcg/tcg-op.h | 2 -- tcg/tcg.h | 6 +++++ trace/control.h | 3 ++ 29 files changed, 113 insertions(+), 30 deletions(-) To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi <stefa...@gmail.com> Cc: Eduardo Habkost <ehabk...@redhat.com> Cc: Eric Blake <ebl...@redhat.com>