All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: "Lluís Vilanova" <vilanova@ac.upc.edu>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Richard Henderson <rth@twiddle.net>,
	qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 00/10] trace: Per-vCPU tracing states
Date: Thu, 7 Jan 2016 16:05:00 +0800	[thread overview]
Message-ID: <20160107080500.GH12971@stefanha-x1.localdomain> (raw)
In-Reply-To: <144838492534.3052.2948919558518613064.stgit@localhost>

[-- Attachment #1: Type: text/plain, Size: 6412 bytes --]

On Tue, Nov 24, 2015 at 06:08:47PM +0100, Lluís Vilanova wrote:
> NOTE: This series completes the framework for guest code tracing. Next series
>       will add actual events.
> 
> Provides per-vCPU dynamic controls of the tracing state of events tied to a
> specific virtual CPU.
> 
> Events with the "vcpu" property are identified as being tied to a particular
> virtual CPU, like executing an instruction. The state of such events can be
> controlled idependently; this is specially useful to, for example, trace memory
> access events of a process executing on a specific virtual CPU.
> 
> This event property plays in combination with the "tcg" property to avoid
> generating a call to the execution-time event tracer when a vCPU is not actively
> tracing such event (i.e., avoids adding tracing overheads).
> 
> Virtual CPUs tracing the same set of events use the same physical translation
> cache, improving their reuse. The system has 2^N physical translation caches,
> where "N" is the number of TCG events with the "vcpu" property. Every vCPU has a
> bitmap with the states of these events, which can be controlled separately, and
> uses it to select its physical translation cache. At translation time, QEMU
> generates the code to trace an event at execution time only if the event is
> enabled.
> 
> 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 (10):
>       trace: Add support for vCPU pointers in trace events
>       trace: Add 'vcpu' event property
>       trace: [tcg] Identify events with the 'vcpu' property
>       exec: [tcg] Refactor flush of per-CPU virtual TB cache
>       exec: [ŧcg] Use multiple physical TB caches
>       exec: [tcg] Track which vCPU is performing translation and execution
>       [trivial] Track when QEMU has finished initialization
>       disas: Remove unused macro '_'
>       trace: [tcg] Add per-vCPU tracing states for events with the 'vcpu' property
>       trace: [tcg] Generate TCG code to trace guest events on a per-vCPU basis
> 
> 
>  Makefile.objs                            |    3 -
>  bsd-user/main.c                          |    1 
>  cpu-exec.c                               |   17 +++
>  cputlb.c                                 |    2 
>  disas/i386.c                             |    2 
>  docs/tracing.txt                         |   40 ++++++++
>  include/disas/bfd.h                      |    1 
>  include/exec/exec-all.h                  |   16 +++
>  include/qemu-common.h                    |    3 +
>  include/qemu/typedefs.h                  |    1 
>  include/qom/cpu.h                        |   10 ++
>  linux-user/main.c                        |    1 
>  monitor.c                                |    4 -
>  qapi/trace.json                          |   16 ++-
>  qemu-common.c                            |   14 +++
>  qmp-commands.hx                          |   17 +++
>  qom/cpu.c                                |   21 ++++
>  scripts/tracetool/__init__.py            |   24 ++++-
>  scripts/tracetool/format/events_c.py     |   11 ++
>  scripts/tracetool/format/events_h.py     |   14 ++-
>  scripts/tracetool/format/h.py            |    4 +
>  scripts/tracetool/format/tcg_h.py        |   21 +++-
>  scripts/tracetool/format/tcg_helper_c.py |   11 ++
>  scripts/tracetool/format/ust_events_c.py |    3 -
>  scripts/tracetool/transform.py           |    9 ++
>  stubs/Makefile.objs                      |    1 
>  stubs/qemu-common-stub.c                 |   21 ++++
>  target-alpha/translate.c                 |    3 -
>  target-arm/translate.c                   |    3 -
>  target-arm/translate.h                   |    2 
>  target-cris/translate.c                  |    3 -
>  target-cris/translate_v10.c              |    1 
>  target-i386/translate.c                  |    3 -
>  target-lm32/translate.c                  |    3 -
>  target-m68k/translate.c                  |    3 -
>  target-microblaze/translate.c            |    3 -
>  target-mips/translate.c                  |    3 -
>  target-moxie/translate.c                 |    3 -
>  target-openrisc/translate.c              |    3 -
>  target-ppc/translate.c                   |    3 -
>  target-s390x/translate.c                 |    3 -
>  target-sh4/translate.c                   |    3 -
>  target-sparc/translate.c                 |    6 +
>  target-tilegx/translate.c                |    3 -
>  target-tricore/translate.c               |    3 -
>  target-unicore32/translate.c             |    3 -
>  target-xtensa/translate.c                |    3 -
>  tcg/tcg-op.h                             |    2 
>  tcg/tcg.h                                |   10 ++
>  trace/Makefile.objs                      |    2 
>  trace/control-internal.h                 |   21 +++-
>  trace/control-stub.c                     |   29 ++++++
>  trace/control-target.c                   |   69 +++++++++++++
>  trace/control.h                          |   64 ++++++++++++
>  trace/event-internal.h                   |    6 +
>  trace/qmp.c                              |  139 ++++++++++++++++++++++-----
>  translate-all.c                          |  156 ++++++++++++++++++++++++++----
>  translate-all.h                          |   49 +++++++++
>  vl.c                                     |    2 
>  59 files changed, 788 insertions(+), 109 deletions(-)
>  create mode 100644 qemu-common.c
>  create mode 100644 stubs/qemu-common-stub.c
>  create mode 100644 trace/control-stub.c
>  create mode 100644 trace/control-target.c
> 
> 
> To: qemu-devel@nongnu.org
> Cc: Stefan Hajnoczi <stefanha@gmail.com>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>

I left comments on individual patches.

There hasn't been any review from TCG folks yet.  I have CCed Peter
Maydell and Richard Henderson to review the TCG changes.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

      parent reply	other threads:[~2016-01-07  8:05 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-24 17:08 [Qemu-devel] [PATCH v2 00/10] trace: Per-vCPU tracing states Lluís Vilanova
2015-11-24 17:08 ` [Qemu-devel] [PATCH v2 01/10] trace: Add support for vCPU pointers in trace events Lluís Vilanova
2015-11-24 17:08 ` [Qemu-devel] [PATCH v2 02/10] trace: Add 'vcpu' event property Lluís Vilanova
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 03/10] trace: [tcg] Identify events with the 'vcpu' property Lluís Vilanova
2015-11-24 17:54   ` Eric Blake
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 04/10] exec: [tcg] Refactor flush of per-CPU virtual TB cache Lluís Vilanova
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 05/10] exec: [ŧcg] Use multiple physical TB caches Lluís Vilanova
2016-01-07  7:49   ` Stefan Hajnoczi
2016-01-07 17:56     ` Lluís Vilanova
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 06/10] exec: [tcg] Track which vCPU is performing translation and execution Lluís Vilanova
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 07/10] [trivial] Track when QEMU has finished initialization Lluís Vilanova
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 08/10] disas: Remove unused macro '_' Lluís Vilanova
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 09/10] trace: [tcg] Add per-vCPU tracing states for events with the 'vcpu' property Lluís Vilanova
2015-11-24 17:57   ` Eric Blake
2015-11-24 18:31     ` Lluís Vilanova
2016-01-07  8:03   ` Stefan Hajnoczi
2016-01-07 18:44     ` Lluís Vilanova
2016-01-14 11:22       ` Stefan Hajnoczi
2015-11-24 17:09 ` [Qemu-devel] [PATCH v2 10/10] trace: [tcg] Generate TCG code to trace guest events on a per-vCPU basis Lluís Vilanova
2016-01-07  8:05 ` Stefan Hajnoczi [this message]

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=20160107080500.GH12971@stefanha-x1.localdomain \
    --to=stefanha@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=vilanova@ac.upc.edu \
    /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.