From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
Cc: linux-kernel@vger.kernel.org, Amit Shah <amit.shah@redhat.com>,
Anthony Liguori <anthony@codemonkey.ws>,
Arnd Bergmann <arnd@arndb.de>, Borislav Petkov <bp@amd64.org>,
"Franch Ch. Eigler" <fche@redhat.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Herbert Xu <herbert@gondor.hengli.com.au>,
Ingo Molnar <mingo@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Steven Rostedt <rostedt@goodmis.org>,
virtualization@lists.linux-foundation.org, qemu-devel@nongnu.org,
yrl.pp-manager.tt@hitachi.com
Subject: Re: [RFC PATCH 0/6] virtio-trace: Support virtio-trace
Date: Tue, 24 Jul 2012 12:27:27 +0900 [thread overview]
Message-ID: <500E161F.5020207@hitachi.com> (raw)
In-Reply-To: <20120724023657.6600.52706.stgit@ltc189.sdl.hitachi.co.jp>
(2012/07/24 11:36), Yoshihiro YUNOMAE wrote:
> Therefore, we propose a new system "virtio-trace", which uses enhanced
> virtio-serial and existing ring-buffer of ftrace, for collecting guest kernel
> tracing data. In this system, there are 5 main components:
> (1) Ring-buffer of ftrace in a guest
> - When trace agent reads ring-buffer, a page is removed from ring-buffer.
> (2) Trace agent in the guest
> - Splice the page of ring-buffer to read_pipe using splice() without
> memory copying. Then, the page is spliced from write_pipe to virtio
> without memory copying.
> (3) Virtio-console driver in the guest
> - Pass the page to virtio-ring
> (4) Virtio-serial bus in QEMU
> - Copy the page to kernel pipe
> (5) Reader in the host
> - Read guest tracing data via FIFO(named pipe)
So, this is our answer for the argued points in previous thread.
This virtio-serial and ftrace enhancements doesn't introduce new
"ringbuffer" in the kernel, and just use virtio's ringbuffer.
Also, using splice gives us a great advantage in the performance
because of copy-less trace-data transfer.
Actually, one copy should occur in the host (to write it into the pipe),
because removing physical pages of the guest is hard to track and may
involve a TLB flush per page, even if it is done in background.
Thank you,
--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
WARNING: multiple messages have this Message-ID (diff)
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
Arnd Bergmann <arnd@arndb.de>,
qemu-devel@nongnu.org, Frederic Weisbecker <fweisbec@gmail.com>,
yrl.pp-manager.tt@hitachi.com, linux-kernel@vger.kernel.org,
Borislav Petkov <bp@amd64.org>,
virtualization@lists.linux-foundation.org,
"Franch Ch. Eigler" <fche@redhat.com>,
Ingo Molnar <mingo@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Steven Rostedt <rostedt@goodmis.org>,
Anthony Liguori <anthony@codemonkey.ws>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Amit Shah <amit.shah@redhat.com>
Subject: Re: [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace
Date: Tue, 24 Jul 2012 12:27:27 +0900 [thread overview]
Message-ID: <500E161F.5020207@hitachi.com> (raw)
In-Reply-To: <20120724023657.6600.52706.stgit@ltc189.sdl.hitachi.co.jp>
(2012/07/24 11:36), Yoshihiro YUNOMAE wrote:
> Therefore, we propose a new system "virtio-trace", which uses enhanced
> virtio-serial and existing ring-buffer of ftrace, for collecting guest kernel
> tracing data. In this system, there are 5 main components:
> (1) Ring-buffer of ftrace in a guest
> - When trace agent reads ring-buffer, a page is removed from ring-buffer.
> (2) Trace agent in the guest
> - Splice the page of ring-buffer to read_pipe using splice() without
> memory copying. Then, the page is spliced from write_pipe to virtio
> without memory copying.
> (3) Virtio-console driver in the guest
> - Pass the page to virtio-ring
> (4) Virtio-serial bus in QEMU
> - Copy the page to kernel pipe
> (5) Reader in the host
> - Read guest tracing data via FIFO(named pipe)
So, this is our answer for the argued points in previous thread.
This virtio-serial and ftrace enhancements doesn't introduce new
"ringbuffer" in the kernel, and just use virtio's ringbuffer.
Also, using splice gives us a great advantage in the performance
because of copy-less trace-data transfer.
Actually, one copy should occur in the host (to write it into the pipe),
because removing physical pages of the guest is hard to track and may
involve a TLB flush per page, even if it is done in background.
Thank you,
--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
next prev parent reply other threads:[~2012-07-24 3:27 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-24 2:36 [RFC PATCH 0/6] virtio-trace: Support virtio-trace Yoshihiro YUNOMAE
2012-07-24 2:36 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:36 ` Yoshihiro YUNOMAE
2012-07-24 2:37 ` [RFC PATCH 1/6] virtio/console: Add splice_write support Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-08-09 9:00 ` Amit Shah
2012-08-09 9:00 ` [Qemu-devel] " Amit Shah
2012-08-09 9:00 ` Amit Shah
2012-08-09 9:12 ` Masami Hiramatsu
2012-08-09 9:12 ` [Qemu-devel] " Masami Hiramatsu
2012-08-09 9:12 ` Masami Hiramatsu
2012-07-24 2:37 ` [RFC PATCH 2/6] virtio/console: Add a failback for unstealable pipe buffer Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-08-09 9:03 ` Amit Shah
2012-08-09 9:03 ` [Qemu-devel] " Amit Shah
2012-08-09 9:03 ` Amit Shah
2012-08-09 9:24 ` Borislav Petkov
2012-08-09 9:24 ` [Qemu-devel] " Borislav Petkov
2012-08-09 9:24 ` Borislav Petkov
2012-08-09 9:24 ` Masami Hiramatsu
2012-08-09 9:24 ` [Qemu-devel] " Masami Hiramatsu
2012-08-09 9:24 ` Masami Hiramatsu
2012-08-09 9:55 ` Amit Shah
2012-08-09 9:55 ` [Qemu-devel] " Amit Shah
2012-08-09 9:55 ` Amit Shah
2012-08-09 9:58 ` Avi Kivity
2012-08-09 9:58 ` [Qemu-devel] " Avi Kivity
2012-08-09 9:58 ` Avi Kivity
2012-08-09 10:14 ` Amit Shah
2012-08-09 10:14 ` [Qemu-devel] " Amit Shah
2012-08-09 10:14 ` Amit Shah
2012-08-09 12:35 ` Steven Rostedt
2012-08-09 12:35 ` Steven Rostedt
2012-08-09 12:35 ` [Qemu-devel] " Steven Rostedt
2012-07-24 2:37 ` [RFC PATCH 3/6] virtio/console: Wait until the port is ready on splice Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-24 2:37 ` [RFC PATCH 4/6] ftrace: Allow stealing pages from pipe buffer Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-30 22:12 ` Steven Rostedt
2012-07-30 22:12 ` [Qemu-devel] " Steven Rostedt
2012-07-30 22:12 ` Steven Rostedt
2012-07-24 2:37 ` [RFC PATCH 5/6] virtio/console: Allocate scatterlist according to the current pipe size Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-24 2:37 ` [RFC PATCH 6/6] tools: Add guest trace agent as a user tool Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-24 3:27 ` [RFC PATCH 0/6] virtio-trace: Support virtio-trace Masami Hiramatsu
2012-07-24 3:27 ` Masami Hiramatsu [this message]
2012-07-24 3:27 ` [Qemu-devel] " Masami Hiramatsu
2012-07-24 10:02 ` Stefan Hajnoczi
2012-07-24 10:02 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-24 10:02 ` Stefan Hajnoczi
2012-07-24 11:03 ` Masami Hiramatsu
2012-07-24 11:03 ` Masami Hiramatsu
2012-07-24 11:03 ` [Qemu-devel] " Masami Hiramatsu
2012-07-24 11:19 ` Yoshihiro YUNOMAE
2012-07-24 11:19 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 11:19 ` Yoshihiro YUNOMAE
2012-07-24 13:41 ` Stefan Hajnoczi
2012-07-24 13:41 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-24 13:41 ` Stefan Hajnoczi
2012-07-25 9:13 ` Yoshihiro YUNOMAE
2012-07-25 9:13 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-25 9:13 ` Re: " Yoshihiro YUNOMAE
2012-07-26 10:52 ` Stefan Hajnoczi
2012-07-26 10:52 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-26 10:52 ` Re: " Stefan Hajnoczi
2012-07-24 13:43 ` Stefan Hajnoczi
2012-07-24 13:43 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-24 13:43 ` Stefan Hajnoczi
2012-07-24 20:26 ` [Qemu-devel] " Blue Swirl
2012-07-24 20:26 ` Blue Swirl
2012-07-25 8:15 ` Masami Hiramatsu
2012-07-25 8:15 ` Masami Hiramatsu
2012-07-25 8:15 ` Masami Hiramatsu
2012-07-27 18:58 ` Blue Swirl
2012-07-27 18:58 ` Blue Swirl
2012-07-27 18:58 ` Blue Swirl
2012-07-26 11:35 ` Amit Shah
2012-07-26 11:35 ` [Qemu-devel] " Amit Shah
2012-07-26 11:35 ` Amit Shah
2012-07-27 8:55 ` Yoshihiro YUNOMAE
2012-07-27 8:55 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-27 8:55 ` Yoshihiro YUNOMAE
2012-07-27 9:43 ` Amit Shah
2012-07-27 9:43 ` [Qemu-devel] " Amit Shah
2012-07-27 9:43 ` Amit Shah
2012-07-31 0:52 ` Yoshihiro YUNOMAE
2012-07-31 0:52 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-31 0:52 ` Re: " Yoshihiro YUNOMAE
2012-08-09 10:16 ` Amit Shah
2012-08-09 10:16 ` [Qemu-devel] " Amit Shah
2012-08-09 10:16 ` Amit Shah
2012-08-21 2:17 ` Rusty Russell
2012-08-21 2:17 ` [Qemu-devel] " Rusty Russell
2012-08-21 2:17 ` Rusty Russell
2012-08-21 5:09 ` Amit Shah
2012-08-21 5:09 ` [Qemu-devel] " Amit Shah
2012-08-21 5:09 ` Amit Shah
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=500E161F.5020207@hitachi.com \
--to=masami.hiramatsu.pt@hitachi.com \
--cc=amit.shah@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=arnd@arndb.de \
--cc=bp@amd64.org \
--cc=fche@redhat.com \
--cc=fweisbec@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=herbert@gondor.hengli.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rostedt@goodmis.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=yoshihiro.yunomae.ez@hitachi.com \
--cc=yrl.pp-manager.tt@hitachi.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.