Skip to contentSkip to conversation

Memory Tracking API

DISCUSSION Jaspal 2 participants 3 messages May 17, 2012 – May 21, 2012 KVM

lore
Share & tools
lore

Jaspal

author
#0 lore raw

Hi ,

Is it possible to keep a count of reads / writes taking place in a vm using qemu ( using kvm as hypervisor ) ? Is there a api ( or any patch ) for it ?

Thanks ,
Jaspal

#1 lore raw
Quoted 5 lines · Jaspal

Hi ,

Is it possible to keep a count of reads / writes taking place in a vm using qemu ( using kvm as hypervisor ) ? Is there a api ( or any patch ) for it ?

Memory reads and writes is surely going to generate a huge amount of output!

There are various DEBUG_* symbols at the top of exec.c and ioport.c. I've only used a few of these:

DEBUG_UNASSIGNED - prints a message when an unmapped page is
referenced (TCG only, presumably?)

DEBUG_IOPORT - prints a message when any I/O port is referenced

DEBUG_UNUSED_IOPORT - prints a message when a non-emulated I/O port
is referenced

There are several more if you look at the code.

Rich.

Signature · 4 lines
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw
author
#2 lore raw
Quoted 15 lines · Richard W.M. Jones
Quoted 5 lines · Jaspal

Hi ,

Is it possible to keep a count of reads / writes taking place in a vm using qemu ( using kvm as hypervisor ) ? Is there a api ( or any patch ) for it ?

Memory reads and writes is surely going to generate a huge amount of output!

There are various DEBUG_* symbols at the top of exec.c and ioport.c. I've only used a few of these:

DEBUG_UNASSIGNED - prints a message when an unmapped page is
referenced (TCG only, presumably?)

Quoted 9 lines

DEBUG_IOPORT - prints a message when any I/O port is referenced

DEBUG_UNUSED_IOPORT - prints a message when a non-emulated I/O port
is referenced

There are several more if you look at the code.

Rich.

When are these functions called : kvm_read_guest_page , kvm_read_guest_atomic , kvm_write_guest_page present in kvm_main.c ? When qemu wants to read/write to a page ? If qemu has to read/write on the vm's memory ( RAM ) , does the process always involve kvm ?

Thanks ,
Jaspal