Here is feedback from adding UST tracing to QEMU/KVM. Hopefully this will be useful to developers and maybe I can learn a more about LTTng UST from discussing hurdles I encountered.
The architecture of UST looks good: pure userspace tracing support, tracepoints can be enumerated, enabled, and disabled at runtime. The manual at http://lttng.org/files/ust/manual/ust.html is a nice quickstart although I suspect it only scratches the surface. One note about the manual: the TP_PROTO() versus TPPROTO() change was confusing. Perhaps a note can be added to the manual that ust.git uses TP_PROTO() but libust 0.4 uses TPPROTO()? When running the instrumented binary, the listener thread outputs noisy error messages: libust[28133/28134]: Error: poll: Interrupted system call (in multipoll_poll() at ../libustcomm/multipoll.c:84) libust[28133/28134]: Error: error in multipoll_poll (in listener_main() at tracectl.c:1015) Strace shows: poll([{fd=3, events=POLLIN}], 1, -1) = ? ERESTART_RESTARTBLOCK (To be restarted) restart_syscall(<... resuming interrupted call ...>) = ? ERESTART_RESTARTBLOCK (To be restarted) Finally, I had to add #undefs to get QEMU to build after including UST headers. Unfortunately the UST headers include headers that pollute the (macro) namespace. Any thoughts on these issues? My patch enabling UST sent to the QEMU mailing list: http://www.mail-archive.com/[email protected]/msg34830.html Stefan _______________________________________________ ltt-dev mailing list [email protected] http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
