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
>
>
>
>
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).