Lluís Vilanova <vilan...@ac.upc.edu> writes: > Lluís Vilanova writes: > >> 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). > > Hi, > > I guess it's been a hectic time to integrate patches, but I haven't received a > comment on the tracing part since v4. If possible, I'd like to send an actual > guest code event (vmem accesses) before the soft-freeze (once this series is > accepted).
I don't see a reason you couldn't post a v8 of this series including the actual use. It would help to see it being used in the wild and the maintainer doesn't have to accept the whole series straight away. > > > Cheers, > Lluis > > >> Changes in v7 >> ============= > >> * Fix the modified event copying code. >> * Minor fix in commit message for patch 3. > > >> Changes in v6 >> ============= > >> * Rebase on 84c0781. >> * Replace the added 'TCGv_cpu' type for 'TCGv_env', since the users are >> really >> pointing to 'CPUArchState'. >> * Add functions to simplify event argument management. >> * Add minor event copy cleanup (remove long "event.original.original" >> chains). >> * Make it easier to change arguments injected by the 'vcpu' property. > > >> Changes in v5 >> ============= > >> * Rebase on 357e81c. >> * Split from the previous (larger and more complex) v4 series. Ahh I see it used to be. Perhaps maybe point to a public tree with the example use? > > >> 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 (4): >> trace: Extend API to manage event arguments >> trace: Remove unnecessary intermediate event copies >> tcg: Add type for vCPU pointers >> trace: Add 'vcpu' event property to trace guest vCPU > > >> docs/tracing.txt | 41 +++++++++++++ >> include/qemu/typedefs.h | 1 >> scripts/tracetool/__init__.py | 31 ++++++++-- >> scripts/tracetool/format/events_h.py | 4 + >> scripts/tracetool/format/h.py | 3 + >> scripts/tracetool/format/tcg_h.py | 33 +++++++---- >> scripts/tracetool/format/tcg_helper_c.py | 35 +++++++++-- >> scripts/tracetool/format/tcg_helper_h.py | 7 +- >> scripts/tracetool/format/tcg_helper_wrapper_h.py | 5 +- >> scripts/tracetool/format/ust_events_c.py | 1 >> scripts/tracetool/transform.py | 4 + >> scripts/tracetool/vcpu.py | 69 >> ++++++++++++++++++++++ >> 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.h | 1 >> trace/control.h | 3 + >> 33 files changed, 224 insertions(+), 55 deletions(-) >> create mode 100644 scripts/tracetool/vcpu.py > > >> To: qemu-devel@nongnu.org >> Cc: Stefan Hajnoczi <stefa...@redhat.com> >> Cc: Eduardo Habkost <ehabk...@redhat.com> >> Cc: Eric Blake <ebl...@redhat.com> >> Cc: Alex Bennée <alex.ben...@linaro.org> -- Alex Bennée