[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace
From: |
Masami Hiramatsu |
Subject: |
Re: [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace |
Date: |
Tue, 24 Jul 2012 12:27:27 +0900 |
User-agent: |
Mozilla/5.0 (Windows NT 5.2; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 |
(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: address@hidden
- [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace, Yoshihiro YUNOMAE, 2012/07/23
- [Qemu-devel] [RFC PATCH 1/6] virtio/console: Add splice_write support, Yoshihiro YUNOMAE, 2012/07/23
- [Qemu-devel] [RFC PATCH 2/6] virtio/console: Add a failback for unstealable pipe buffer, Yoshihiro YUNOMAE, 2012/07/23
- [Qemu-devel] [RFC PATCH 3/6] virtio/console: Wait until the port is ready on splice, Yoshihiro YUNOMAE, 2012/07/23
- [Qemu-devel] [RFC PATCH 4/6] ftrace: Allow stealing pages from pipe buffer, Yoshihiro YUNOMAE, 2012/07/23
- [Qemu-devel] [RFC PATCH 5/6] virtio/console: Allocate scatterlist according to the current pipe size, Yoshihiro YUNOMAE, 2012/07/23
- [Qemu-devel] [RFC PATCH 6/6] tools: Add guest trace agent as a user tool, Yoshihiro YUNOMAE, 2012/07/23
- Re: [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace,
Masami Hiramatsu <=
- Re: [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace, Stefan Hajnoczi, 2012/07/24
- Re: [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace, Stefan Hajnoczi, 2012/07/24
Re: [Qemu-devel] [RFC PATCH 0/6] virtio-trace: Support virtio-trace, Blue Swirl, 2012/07/24