All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Dhaval Giani <dhaval.giani@gmail.com>
Cc: "Blue Swirl" <blauwirbel@gmail.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	"Stefan Hajnoczi" <stefanha@linux.vnet.ibm.com>,
	"Avi Kivity" <avi@redhat.com>, Lluís <xscript@gmx.net>
Subject: Re: [Qemu-devel] [PATCH, RFC] trace: implement guest tracepoint passthrough
Date: Wed, 31 Aug 2011 14:38:21 +0100	[thread overview]
Message-ID: <CAJSP0QWOvjxBxPYCcscHuys8dRGOxq9Aw8J8tV25ZCNKaSRtaw@mail.gmail.com> (raw)
In-Reply-To: <4E5DFABF.2000007@redhat.com>

On Wed, Aug 31, 2011 at 10:11 AM, Avi Kivity <avi@redhat.com> wrote:
> On 08/31/2011 12:08 PM, Stefan Hajnoczi wrote:
>>
>> >
>> >  At least on x86, fw_cfg is pretty slow, involving multiple exits.
>> >  IMO, for kvm, even one exit per tracepoint is too high.  We need to
>> >  use a shared memory transport with a way to order guest/host events
>> >  later on (by using a clock).
>>
>> It depends how you want to use this.  If you need it for guest firmware
>> debugging or bringing up a new target, then this approach is fine.
>>
>> But this is not a mechanism that is suitable for performance analysis or
>> production tracing (the fact that the QEMU and guest software need to be
>> built together in order to sync on event IDs is the killer).
>>
>> Dhaval is looking at Linux guest tracing which is suitable for
>> performance work.  This does not necessarily involve modifying QEMU.
>> Currently he uses a hypercall but a virtio device would be possible too.
>
> IMO a hypercall is the way to go, virtio is not entirely suitable for
> per-cpu work.
>
>> The key thing is that it integrates with the host kernel tracing
>> infrastructure so you get a unified trace instead of terminating in QEMU
>> userspace.
>>
>> So I see Blue's feature as a quick starting point for people who need to
>> debug and hack guests.  It should be simple and easy to get going for
>> QEMU developers, but is not suitable for other use.
>>
>
> We should have one tracing mechanism that is useful everywhere, not
> fragmented functionality.

You have a point.

Dhaval: Any update on the approach you are working on?  Do you have
public code we can look at?

Stefan

  reply	other threads:[~2011-08-31 13:38 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-26 19:06 [Qemu-devel] [PATCH, RFC] trace: implement guest tracepoint passthrough Blue Swirl
2011-08-29 12:17 ` Stefan Hajnoczi
2011-08-29 12:51   ` Lluís
2011-08-30 18:58     ` Blue Swirl
2011-08-30 18:43   ` Blue Swirl
2011-08-31  7:24     ` Stefan Hajnoczi
2011-08-31  8:38 ` Avi Kivity
2011-08-31  9:08   ` Stefan Hajnoczi
2011-08-31  9:11     ` Avi Kivity
2011-08-31 13:38       ` Stefan Hajnoczi [this message]
2011-08-31 18:01         ` Dhaval Giani
2011-08-31 10:54     ` Jan Kiszka
2011-08-31 17:58   ` Blue Swirl
2011-08-31 18:00     ` Dhaval Giani
2011-09-03  8:53       ` Blue Swirl
2011-09-03  9:26         ` Dhaval Giani
2011-09-03 10:55           ` Blue Swirl

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=CAJSP0QWOvjxBxPYCcscHuys8dRGOxq9Aw8J8tV25ZCNKaSRtaw@mail.gmail.com \
    --to=stefanha@gmail.com \
    --cc=avi@redhat.com \
    --cc=blauwirbel@gmail.com \
    --cc=dhaval.giani@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=xscript@gmx.net \
    /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.