Re: Tracing KVM with Systemtap

Rayson Ho
2010-09-22T12:11:30Z

On Tue, 2010-09-21 at 14:33 +0100, Stefan Hajnoczi wrote:
> > net.c qemu_deliver_packet(), etc - network statistics
>
> Yes.

Further digging into the code in the net/ directory, there are more
functions that should be traced/probed - e.g. a lot of the net_socket*
routines.

Given that SystemTap, LTTng, and DTrace have extremely close to zero
overhead at each probe point, adding them into code can provide users
different performance resolutions into the networking code.

> > <CPU Arch>/op_helper.c global_cpu_lock(), tlb_fill() - lock & unlock,
> > and TLB refill statistics
>
> These are not relevant to KVM, they are only used when running with
> KVM disabled (TCG mode).

Hmm, while my main objective is to add probes for KVM, if they are
useful to QEMU, I may as well add them to my patch.

> > balloon.c, hw/virtio-balloon.c - ballooning information.
>
> Prerna added a balloon event which is in qemu.git trace-events. Does
> that one do what you need?

Thanks for the info.

> > I will see what other probes are useful for the end users. Also, are
> > there developer documentations for KVM? (I googled but found a lot of
> > presentations about KVM but not a lot of info about the internals.)
>
> Not really. I suggest grabbing the source and following vl.c:main()
> to the main KVM execution code.

I was looking for the hardware interfacing code earlier this morning --
QEMU has the hardware specific directories (e.g. target-i386/ ,
target-ppc/ ), and I was trying to understand the execution environment
when the host and guest are running on the same architecture.

I believe cpu_gen_code() and other related functions are what I should
dig into...

Rayson

>
> Stefan
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html