On 10/24/2011 08:37 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange(a)redhat.com>
This change adds some systemtap/dtrace probes to the QEMU monitor
client code. In particular it allows watching of all operations
for a VM
* examples/systemtap/qemu-monitor.stp: Watch all monitor commands
* src/Makefile.am: Passing libdir/bindir/sbindir to dtrace2systemtap.pl
* src/dtrace2systemtap.pl: Accept libdir/bindir/sbindir as args
and look for '# binary:' comment to mark probes against libvirtd
vs libvirt.so
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor_json.c,
src/qemu/qemu_monitor_text.c: Add probes for key functions
---
examples/systemtap/qemu-monitor.stp | 81 +++++++++++++++++++++++++++++++++++
src/Makefile.am | 2 +-
src/dtrace2systemtap.pl | 15 ++++++-
src/probes.d | 20 +++++++++
src/qemu/qemu_monitor.c | 31 ++++++++++++-
src/qemu/qemu_monitor_json.c | 4 ++
src/qemu/qemu_monitor_text.c | 3 +
7 files changed, 150 insertions(+), 6 deletions(-)
create mode 100644 examples/systemtap/qemu-monitor.stp
@@ -66,7 +72,7 @@ while (<>) {
die "unexpected data $_ on line $.";
}
} else {
- die "unexpected data $_ on line $.";
+ #die "unexpected data $_ on line $.";
Alon pointed this out.
@@ -183,6 +183,8 @@ static void qemuMonitorFree(qemuMonitorPtr mon)
int qemuMonitorRef(qemuMonitorPtr mon)
{
mon->refs++;
+ PROBE(QEMU_MONITOR_UNREF,
+ "mon=%p refs=%d", mon, mon->refs);
It looks weird seeing an UNREF inside qemuMonitorRef. Did you mean
QEMU_MONITOR_REF?
ACK with those points addressed.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org