From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37213) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYz0M-0007Ww-KF for qemu-devel@nongnu.org; Thu, 25 Feb 2016 11:43:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYz0H-0001bz-Qk for qemu-devel@nongnu.org; Thu, 25 Feb 2016 11:43:06 -0500 Received: from roura.ac.upc.edu ([147.83.33.10]:54031 helo=roura.ac.upc.es) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYz0H-0001bT-B5 for qemu-devel@nongnu.org; Thu, 25 Feb 2016 11:43:01 -0500 From: =?utf-8?b?TGx1w61z?= Vilanova Date: Thu, 25 Feb 2016 17:42:58 +0100 Message-Id: <145641857632.30295.407142116443473458.stgit@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v9 0/7] trace: Show vCPU info in guest code events List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , Eduardo Habkost , Stefan Hajnoczi NOTE: This series should complete the framework for guest code tracing. F= rom here on, other series can concurrently add actual events and improv= e 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 prope= rty identifies events that are tied to a particular virtual CPU (e.g., execut= ing 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 implic= it 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 tra= ce) Note that the "vcpu" and "tcg" properties are not merged into a single on= e, since events can be defined that relate to a vCPU but are never raised fr= om TCG code (e.g., interrupts). Changes in v9 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * Rebase on 774ae42. * Fix CPUState typedef, and refactor into a separate patch [Stefan Hajnoc= zi]. * Fix TCGv_cpu -> TCGv_env rename in sparc [Stefan Hajnoczi]. Changes in v8 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * Rebase on 1b16240. * Minor fix in message formatting ('tracetool.vcpu' module). * Fix management of event arguments with TCG types. * Tested with various (non sent) events with different mixes of native an= d TCG arguments. Changes in v7 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * Fix the modified event copying code. * Minor fix in commit message for patch 3. Changes in v6 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * Rebase on 84c0781. * Replace the added 'TCGv_cpu' type for 'TCGv_env', since the users are r= eally pointing to 'CPUArchState'. * Add functions to simplify event argument management. * Add minor event copy cleanup (remove long "event.original.original" cha= ins). * Make it easier to change arguments injected by the 'vcpu' property. Changes in v5 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * Rebase on 357e81c. * Split from the previous (larger and more complex) v4 series. Changes in v4 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * Fix typo in commit message (Stefan Hajnoczi). * Simplify per-vCPU tracing state initialization (Stefan Hajnoczi). * Update copyright years. Changes in v3 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * Update QAPI version (Eric Blake). * Fix '#optional' annotation in QAPI (Eric Blake). Changes in v2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D * 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=C3=ADs Vilanova --- Llu=C3=ADs Vilanova (7): trace: Extend API to manage event arguments trace: Remove unnecessary intermediate event copies tcg: Add type for vCPU pointers tcg: Move definition of type TCGv [trivial] trace: Add helper function to cast event arguments typedefs: Add CPUState trace: Add 'vcpu' event property to trace guest vCPU docs/tracing.txt | 41 +++++++++++++ include/qemu/typedefs.h | 1=20 include/qom/cpu.h | 1=20 scripts/tracetool/__init__.py | 35 +++++++++-- 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 | 45 +++++++++++--- 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=20 scripts/tracetool/transform.py | 4 + scripts/tracetool/vcpu.py | 70 ++++++++++++++++= ++++++ stubs/target-get-monitor-def.c | 3 - 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 | 8 +++ trace/control.h | 3 + 36 files changed, 242 insertions(+), 65 deletions(-) create mode 100644 scripts/tracetool/vcpu.py To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi Cc: Eduardo Habkost Cc: Eric Blake Cc: Alex Benn=C3=A9e