All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Julien Desfossez <ju@klipix.org>,
	qemu-devel@nongnu.org, Prerna Saxena <prerna@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 00/14] trace: Add static tracing to QEMU
Date: Sun, 22 Aug 2010 16:47:41 -0500	[thread overview]
Message-ID: <4C719AFD.8050006@codemonkey.ws> (raw)
In-Reply-To: <1281609395-17621-1-git-send-email-stefanha@linux.vnet.ibm.com>

On 08/12/2010 05:36 AM, Stefan Hajnoczi wrote:
> This patch series adds static tracing to QEMU.  It can be used to instrument
> QEMU code by means of lightweight logging called trace events.
>
> Prerna and I are now posting the entire patch series with a serious eye towards
> checking we meet users' and developers' tracing needs and with the goal of
> getting this functionality merged into qemu.git.
>
> Tracing infrastructure allows debugging, performance analysis, and observation
> to be performed.  Right now there are ad-hoc logging calls in some source files
> which require rebuilding QEMU with certain #defines and perform poorly.  This
> patch series introduces a single tracing infrastructure which is easy to use
> and can replace ad-hoc techniques.
>
> Two key points:
>
> 1. The trace-events file contains the set of defined trace events which can be
>     called from a source file.  For example, trace-events has:
>
>      qemu_malloc(size_t size, void *ptr) "size %zu ptr %p"
>
>     and qemu-malloc.c uses this trace event like this:
>
>      #include "trace.h"  /* needed for trace event prototype */
>
>      void *qemu_malloc(size_t size)
>      {
>          void *ptr;
>          if (!size&&  !allow_zero_malloc()) {
>              abort();
>          }
>          ptr = oom_check(malloc(size ? size : 1));
>          trace_qemu_malloc(size, ptr);  /*<-- trace event */
>          return ptr;
>      }
>
> 2. The built-in 'simple' trace backend writes binary traces to
>     /tmp/trace-<pid>.  They can be pretty-printed like this:
>
>      ./simpletrace.py trace-events /tmp/trace-*
>
>     Although you can also try LTTng Userspace Tracer ('ust' trace backend), the
>     'simple' trace backend provides commands within the QEMU monitor to
>     enable/disable trace events at runtime.  It is easy to use and should serve
>     as a good default trace backend.
>
>     The 'simple' trace backend's limitation is that it isn't thread-safe and can
>     therefore only trace correctly when the QEMU global mutex is held.
>
> For full documentation, see:
> http://repo.or.cz/w/qemu/stefanha.git/blob_plain/8d9f8f62d5af986fab6636770450f57fbd0d8b66:/docs/tracing.txt
>
> The git branch is here:
> http://repo.or.cz/w/qemu/stefanha.git/shortlog/refs/heads/tracing
>    

This turned out very nice.  Good work!

Regards,

Anthony Liguori

> Stefan
>
>
>
>    

  parent reply	other threads:[~2010-08-22 21:50 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-12 10:36 [Qemu-devel] [PATCH 00/14] trace: Add static tracing to QEMU Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 01/14] trace: Add trace-events file for declaring trace events Stefan Hajnoczi
2010-08-12 16:07   ` malc
2010-08-12 19:15     ` Stefan Hajnoczi
2010-08-22 21:38   ` Anthony Liguori
2010-08-23 10:00     ` Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 02/14] trace: Trace qemu_malloc() and qemu_vmalloc() Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 03/14] trace: Trace virtio-blk, multiwrite, and paio_submit Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 04/14] trace: Trace virtqueue operations Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 05/14] trace: Trace port IO Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 06/14] trace: Trace entry point of balloon request handler Stefan Hajnoczi
2010-08-22 21:41   ` Anthony Liguori
2010-08-23 10:10     ` Stefan Hajnoczi
2010-08-23 13:15       ` Anthony Liguori
2010-08-12 10:36 ` [Qemu-devel] [PATCH 07/14] trace: Add simple built-in tracing backend Stefan Hajnoczi
2010-08-12 17:56   ` Blue Swirl
2010-08-12 19:31     ` Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 08/14] trace: Support for dynamically enabling/disabling trace events Stefan Hajnoczi
2010-08-12 18:02   ` Blue Swirl
2010-08-13 13:34     ` Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 09/14] trace: Support disabled events in trace-events Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 10/14] trace: Specify trace file name Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 11/14] trace: Add trace-file command to open/close/flush trace file Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 12/14] trace: Add trace file name command-line option Stefan Hajnoczi
2010-08-22 21:45   ` Anthony Liguori
2010-08-12 10:36 ` [Qemu-devel] [PATCH 13/14] trace: Add LTTng Userspace Tracer backend Stefan Hajnoczi
2010-08-12 10:36 ` [Qemu-devel] [PATCH 14/14] trace: Add user documentation Stefan Hajnoczi
2010-08-22 21:47   ` Anthony Liguori
2010-08-23 10:11     ` Stefan Hajnoczi
2010-08-12 18:10 ` [Qemu-devel] [PATCH 00/14] trace: Add static tracing to QEMU Blue Swirl
2010-08-13 13:45   ` Stefan Hajnoczi
2010-08-13 19:07     ` Lluís
2010-08-22 21:47 ` Anthony Liguori [this message]
2010-09-05  7:30 ` [Qemu-devel] " Michael S. Tsirkin
2010-09-06 13:32   ` 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=4C719AFD.8050006@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=ju@klipix.org \
    --cc=prerna@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.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.