Thanks for helping me. what should I do in case of using KVM?

On Wed, Feb 10, 2016 at 4:10 PM, Paolo Bonzini <pbonz...@redhat.com> wrote:

>
>
> On 10/02/2016 11:23, Stefan Hajnoczi wrote:
> > On Wed, Feb 10, 2016 at 12:35:54PM +0330, Aarian P. Aleahmad
> > wrote:
> >> I'm a student, engaged in a project in which QEMU is a candidate
> >> to be used to make some studies about IO usage etc. I need to
> >> track the IO requests made to the block devices (e.g. HDD, SSD,
> >> etc.). I check the source code but I was confused. What I want to
> >> know is that when an IO request is made, find out that which on
> >> of the VMs has made that request. I'll thank you if you help me
> >> on this issue.
> >
> > There are trace events that you can use.  See docs/tracing.txt and
> > trace-events.
> >
> > virtio_blk_handle_write and virtio_blk_handle_read can be used if
> > your guest has virtio-blk.
> >
> > The QEMU block layer also has trace events named bdrv_aio_*.
> >
> > Or you could use blktrace(8) in the guest or on the host, depending
> > on how you've set up storage.
>
> It's the third time I've gotten the question recently which makes me
> believe the others were friends with Aarian...
>
> Each QEMU process represents a single VM.  Therefore, it is simple to
> answer the question "which VM is making the request"; the answer is
> "the one for the QEMU process you are tracing".
>
> You probably want to use blktrace if you care about multiple VMs.
> Alternatively, you can use tracing as mentioned by Stefan.  If you
> compile QEMU with --enable-trace-backend=simple, the resulting files
> can be parsed with Python programs (see scripts/simpletrace.py).  The
> trace files include the pid and a timestamp based on CLOCK_MONOTONIC,
> so it should be easy to merge the traces together.
>
> Paolo
>

Reply via email to