qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org, kvm@vger.kernel.org
Cc: Anthony Liguori <aliguori@us.ibm.com>,
	Prerna Saxena <prerna@linux.vnet.ibm.com>
Subject: [Qemu-devel] [RFC 0/2] Tracing
Date: Fri, 21 May 2010 10:42:25 +0100	[thread overview]
Message-ID: <1274434947-2863-1-git-send-email-stefanha@linux.vnet.ibm.com> (raw)

Trace events in QEMU/KVM can be very useful for debugging and performance
analysis.  I'd like to discuss tracing support and hope others have an interest
in this feature, too.

Following this email are patches I am using to debug virtio-blk and storage.
The patches provide trivial tracing support, but they don't address the details
of real tracing tools: enabling/disabling events at runtime, no overhead for
disabled events, multithreading support, etc.

It would be nice to have userland tracing facilities that work out-of-the-box
on production systems.  Unfortunately, I'm not aware of any such facilities out
there right now on Linux.  Perhaps SystemTap userspace tracing is the way to
go, has anyone tried it with KVM?

For the medium term, without userspace tracing facilities in the OS we could
put something into QEMU to address the need for tracing.  Here are my thoughts
on fleshing out the tracing patch I have posted:

1. Make it possible to enable/disable events at runtime.  Users enable only the
   events they are interested in and aren't flooded with trace data for all
   other events.

2. Either make trace events cheap or build without trace events by default.
   Disable by default still allows tracing to be used for development but
   less for production.

3. Allow events in any execution context (cpu, io, aio emulation threads).  The
   current code does not support concurrency and is meant for when the iothread
   mutex is held.

4. Make it easy to add new events.  Instead of keeping trace.h and trace.py in
   sync manually, use something like .hx to produce the appropriate C and
   Python.

Summary: Tracing is useful, are there external tools we can use right now?  If
not, should we put in something that works well enough until external tools
catch up?

Stefan

             reply	other threads:[~2010-05-21  9:44 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-21  9:42 Stefan Hajnoczi [this message]
2010-05-21  9:42 ` [Qemu-devel] [PATCH 1/2] trace: Add simple tracing support Stefan Hajnoczi
2010-05-21  9:49   ` [Qemu-devel] " Stefan Hajnoczi
2010-05-21 11:13   ` Jan Kiszka
2010-05-21 13:10     ` Stefan Hajnoczi
2010-05-21 13:22       ` Jan Kiszka
2010-05-21 12:37   ` [Qemu-devel] " Anthony Liguori
2010-05-21 13:46     ` Jan Kiszka
2010-05-21 14:03       ` Anthony Liguori
2010-05-21 16:52         ` Jan Kiszka
2010-05-21 20:49           ` Stefan Hajnoczi
2010-05-21 21:26             ` Christoph Hellwig
2010-05-21 21:37             ` Jan Kiszka
2010-05-21 21:06           ` Anthony Liguori
2010-05-21 21:41             ` Jan Kiszka
2010-05-21 21:58               ` Anthony Liguori
2010-05-21  9:42 ` [Qemu-devel] [PATCH 2/2] trace: Trace write requests in virtio-blk, multiwrite, and paio_submit Stefan Hajnoczi
2010-05-21 11:27 ` [Qemu-devel] [RFC 0/2] Tracing Prerna Saxena

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=1274434947-2863-1-git-send-email-stefanha@linux.vnet.ibm.com \
    --to=stefanha@linux.vnet.ibm.com \
    --cc=aliguori@us.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=prerna@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /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).