All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Lluís Vilanova" <vilanova@ac.upc.edu>
To: qemu-devel@nongnu.org
Cc: "Alex Bennée" <alex.bennee@linaro.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>
Subject: [Qemu-devel] [PATCH v9 0/7] trace: Show vCPU info in guest code events
Date: Thu, 25 Feb 2016 17:42:58 +0100	[thread overview]
Message-ID: <145641857632.30295.407142116443473458.stgit@localhost> (raw)

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 v9
=============

* Rebase on 774ae42.
* Fix CPUState typedef, and refactor into a separate patch [Stefan Hajnoczi].
* Fix TCGv_cpu -> TCGv_env rename in sparc [Stefan Hajnoczi].


Changes in v8
=============

* 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 and TCG arguments.


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.


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 <vilanova@ac.upc.edu>
---

Lluís 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 
 include/qom/cpu.h                                |    1 
 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 
 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 <stefanha@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Alex Bennée <alex.bennee@linaro.org>

             reply	other threads:[~2016-02-25 16:43 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-25 16:42 Lluís Vilanova [this message]
2016-02-25 16:43 ` [Qemu-devel] [PATCH v9 1/7] trace: Extend API to manage event arguments Lluís Vilanova
2016-02-25 16:43 ` [Qemu-devel] [PATCH v9 2/7] trace: Remove unnecessary intermediate event copies Lluís Vilanova
2016-02-25 16:43 ` [Qemu-devel] [PATCH v9 3/7] tcg: Add type for vCPU pointers Lluís Vilanova
2016-02-25 16:43 ` [Qemu-devel] [PATCH v9 4/7] tcg: Move definition of type TCGv Lluís Vilanova
2016-02-25 16:43 ` [Qemu-devel] [PATCH v9 5/7] [trivial] trace: Add helper function to cast event arguments Lluís Vilanova
2016-02-25 16:43 ` [Qemu-devel] [PATCH v9 6/7] typedefs: Add CPUState Lluís Vilanova
2016-02-25 16:43 ` [Qemu-devel] [PATCH v9 7/7] trace: Add 'vcpu' event property to trace guest vCPU Lluís Vilanova
2016-03-01 11:10 ` [Qemu-devel] [PATCH v9 0/7] trace: Show vCPU info in guest code events Lluís Vilanova
2016-03-01 13:31 ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=145641857632.30295.407142116443473458.stgit@localhost \
    --to=vilanova@ac.upc.edu \
    --cc=alex.bennee@linaro.org \
    --cc=ehabkost@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.