diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 24cce8f86208b5abc1820685758152c656d7cfb5..5d4c1a7711e0ddf2fc786f5460d0b3edbe5ae33c 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -112,7 +112,7 @@ libvirtd_LDADD = \ $(POLKIT_LIBS) if WITH_DTRACE_PROBES -libvirtd_LDADD += ../src/probes.o +libvirtd_LDADD += ../src/libvirt_probes.o endif libvirtd_LDADD += \ @@ -121,6 +121,9 @@ libvirtd_LDADD += \ if ! WITH_DRIVER_MODULES if WITH_QEMU libvirtd_LDADD += ../src/libvirt_driver_qemu.la +if WITH_DTRACE_PROBES + libvirtd_LDADD += ../src/libvirt_qemu_probes.o +endif endif if WITH_LXC diff --git a/src/Makefile.am b/src/Makefile.am index 5259ff0081d8a7c49975a2f4631460987b591ae8..bdb0ef485bb8381033b53920de537ed0bd0e131a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1246,22 +1246,30 @@ libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS) libvirt_la_DEPENDENCIES = $(libvirt_la_BUILT_LIBADD) $(LIBVIRT_SYMBOL_FILE) if WITH_DTRACE_PROBES -libvirt_la_BUILT_LIBADD += probes.o -libvirt_la_DEPENDENCIES += probes.o -nodist_libvirt_la_SOURCES = probes.h +libvirt_la_BUILT_LIBADD += libvirt_probes.o +libvirt_la_DEPENDENCIES += libvirt_probes.o +nodist_libvirt_la_SOURCES = libvirt_probes.h if WITH_REMOTE -$(REMOTE_DRIVER_GENERATED): probes.h +$(REMOTE_DRIVER_GENERATED): libvirt_probes.h endif WITH_REMOTE -BUILT_SOURCES += probes.h libvirt_probes.stp libvirt_functions.stp +BUILT_SOURCES += libvirt_probes.h libvirt_probes.stp libvirt_functions.stp + +if WITH_QEMU +libvirt_driver_qemu_la_LIBADD += libvirt_qemu_probes.o +nodist_libvirt_driver_qemu_la_SOURCES = libvirt_qemu_probes.h +libvirt_driver_qemu_la_DEPENDENCIES = libvirt_qemu_probes.o + +$(libvirt_driver_qemu_la_SOURCES): libvirt_qemu_probes.h +endif tapsetdir = $(datadir)/systemtap/tapset -tapset_DATA = libvirt_probes.stp libvirt_functions.stp +tapset_DATA = libvirt_probes.stp libvirt_qemu_probes.stp libvirt_functions.stp -probes.h: probes.d +%_probes.h: %_probes.d $(AM_V_GEN)$(DTRACE) -o $@ -h -s $< -probes.o: probes.d +%_probes.o: %_probes.d $(AM_V_GEN)$(DTRACE) -o $@ -G -s $< RPC_PROBE_FILES = $(srcdir)/rpc/virnetprotocol.x \ @@ -1272,13 +1280,19 @@ RPC_PROBE_FILES = $(srcdir)/rpc/virnetprotocol.x \ libvirt_functions.stp: $(RPC_PROBE_FILES) $(srcdir)/rpc/gensystemtap.pl $(AM_V_GEN)perl -w $(srcdir)/rpc/gensystemtap.pl $(RPC_PROBE_FILES) > $@ -libvirt_probes.stp: probes.d $(srcdir)/dtrace2systemtap.pl +libvirt_probes.stp: libvirt_probes.d $(srcdir)/dtrace2systemtap.pl + $(AM_V_GEN)perl -w $(srcdir)/dtrace2systemtap.pl $(bindir) $(sbindir) $(libdir) $< > $@ + +libvirt_qemu_probes.stp: libvirt_qemu_probes.d $(srcdir)/dtrace2systemtap.pl $(AM_V_GEN)perl -w $(srcdir)/dtrace2systemtap.pl $(bindir) $(sbindir) $(libdir) $< > $@ -CLEANFILES += probes.h probes.o libvirt_functions.stp libvirt_probes.stp +CLEANFILES += libvirt_probes.h libvirt_probes.o \ + libvirt_qemu_probes.h libvirt_qemu_probes.o \ + libvirt_functions.stp libvirt_probes.stp \ + libvirt_qemu_probes.stp endif -EXTRA_DIST += probes.d +EXTRA_DIST += libvirt_probes.d libvirt_qemu_probes.d libvirt_qemu_la_SOURCES = libvirt-qemu.c libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \ @@ -1465,7 +1479,7 @@ libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \ $(RT_LIBS) $(DBUS_LIBS) \ ../gnulib/lib/libgnu.la if WITH_DTRACE_PROBES -libvirt_lxc_LDADD += probes.o +libvirt_lxc_LDADD += libvirt_probes.o endif if WITH_SECDRIVER_SELINUX libvirt_lxc_LDADD += $(SELINUX_LIBS) @@ -1510,7 +1524,7 @@ virt_aa_helper_LDADD = \ libvirt_util.la \ ../gnulib/lib/libgnu.la if WITH_DTRACE_PROBES -virt_aa_helper_LDADD += probes.o +virt_aa_helper_LDADD += libvirt_probes.o endif virt_aa_helper_CFLAGS = \ -I$(top_srcdir)/src/conf \ diff --git a/src/internal.h b/src/internal.h index 83f468db43ad423c4d66003008b6e6d049b2edd5..d13847a96fd1bc18554b90f8d9c219cfe642d799 100644 --- a/src/internal.h +++ b/src/internal.h @@ -250,7 +250,7 @@ # if WITH_DTRACE_PROBES # ifndef LIBVIRT_PROBES_H # define LIBVIRT_PROBES_H -# include "probes.h" +# include "libvirt_probes.h" # endif /* LIBVIRT_PROBES_H */ /* Systemtap 1.2 headers have a bug where they cannot handle a diff --git a/src/probes.d b/src/libvirt_probes.d similarity index 78% rename from src/probes.d rename to src/libvirt_probes.d index e56dc3e2648ffa63c0d5566df495b01b957b961a..ac6c5462292f26ef7df601ae6f705e8e8e22fc3e 100644 --- a/src/probes.d +++ b/src/libvirt_probes.d @@ -82,25 +82,4 @@ provider libvirt { probe rpc_keepalive_send(void *ka, void *client, int prog, int vers, int proc); probe rpc_keepalive_received(void *ka, void *client, int prog, int vers, int proc); probe rpc_keepalive_timeout(void *ka, void *client, int coundToDeath, int idle); - - - # file: src/qemu/qemu_monitor.c - # prefix: qemu - # binary: libvirtd - # Monitor lifecycle - probe qemu_monitor_new(void *mon, int refs, int fd); - probe qemu_monitor_ref(void *mon, int refs); - probe qemu_monitor_unref(void *mon, int refs); - probe qemu_monitor_close(void *monm, int refs); - - # High level monitor message processing - probe qemu_monitor_send_msg(void *mon, const char *msg, int fd); - probe qemu_monitor_recv_reply(void *mon, const char *reply); - probe qemu_monitor_recv_event(void *mon, const char *event); - - # Low level monitor I/O processing - probe qemu_monitor_io_process(void *mon, const char *buf, unsigned int len); - probe qemu_monitor_io_read(void *mon, const char *buf, unsigned int len, int ret, int errno); - probe qemu_monitor_io_write(void *mon, const char *buf, unsigned int len, int ret, int errno); - probe qemu_monitor_io_send_fd(void *mon, int fd, int ret, int errno); }; diff --git a/src/libvirt_qemu_probes.d b/src/libvirt_qemu_probes.d new file mode 100644 index 0000000000000000000000000000000000000000..6916778434790451cee1884ec016a774c9229180 --- /dev/null +++ b/src/libvirt_qemu_probes.d @@ -0,0 +1,21 @@ +provider libvirt { + # file: src/qemu/qemu_monitor.c + # prefix: qemu + # binary: libvirtd + # Monitor lifecycle + probe qemu_monitor_new(void *mon, int refs, int fd); + probe qemu_monitor_ref(void *mon, int refs); + probe qemu_monitor_unref(void *mon, int refs); + probe qemu_monitor_close(void *monm, int refs); + + # High level monitor message processing + probe qemu_monitor_send_msg(void *mon, const char *msg, int fd); + probe qemu_monitor_recv_reply(void *mon, const char *reply); + probe qemu_monitor_recv_event(void *mon, const char *event); + + # Low level monitor I/O processing + probe qemu_monitor_io_process(void *mon, const char *buf, unsigned int len); + probe qemu_monitor_io_read(void *mon, const char *buf, unsigned int len, int ret, int errno); + probe qemu_monitor_io_write(void *mon, const char *buf, unsigned int len, int ret, int errno); + probe qemu_monitor_io_send_fd(void *mon, int fd, int ret, int errno); +}; diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 7d69c679c234a9a8ca0a36b103ab4c0cd7b2f586..7084c68774c02b24da3122a8328b3a905529faf6 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -37,6 +37,10 @@ #include "logging.h" #include "virfile.h" +#ifdef WITH_DTRACE_PROBES +# include "libvirt_qemu_probes.h" +#endif + #define VIR_FROM_THIS VIR_FROM_QEMU #define DEBUG_IO 0 diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index e1f54532dacdf6f0685e4297aaec4790e5ee6123..90303479f596afbb2b9b8108b39ec1341fcfd362 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -43,6 +43,10 @@ #include "json.h" #include "ignore-value.h" +#ifdef WITH_DTRACE_PROBES +# include "libvirt_qemu_probes.h" +#endif + #define VIR_FROM_THIS VIR_FROM_QEMU diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index 9e2991bb0f4e9c5b0febebd0206afed6174789e8..edb5dfde2e09aa594e788ca20e1eee69c697607e 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -41,6 +41,10 @@ #include "virterror_internal.h" #include "buf.h" +#ifdef WITH_DTRACE_PROBES +# include "libvirt_qemu_probes.h" +#endif + #define VIR_FROM_THIS VIR_FROM_QEMU #define QEMU_CMD_PROMPT "\n(qemu) " diff --git a/tests/Makefile.am b/tests/Makefile.am index 6b1f95e140ae0ef3a58e26142a45c8bc8b3142ec..4575a563442077aaa7e10337dbf1efdb79c47a08 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -31,7 +31,7 @@ endif PROBES_O = if WITH_DTRACE_PROBES -PROBES_O += ../src/probes.o +PROBES_O += ../src/libvirt_probes.o endif LDADDS = \ @@ -290,6 +290,9 @@ qemu_LDADDS = ../src/libvirt_driver_qemu.la if WITH_NETWORK qemu_LDADDS += ../src/libvirt_driver_network.la endif +if WITH_DTRACE_PROBES +qemu_LDADDS += ../src/libvirt_qemu_probes.o +endif qemu_LDADDS += $(LDADDS) qemuxml2argvtest_SOURCES = \