[ltt-dev] UST 0.2 released, now with per-cpu buffers

Pierre-Marc Fournier pierre-marc.fournier at polymtl.ca
Thu Feb 18 12:34:42 EST 2010


Hi,

UST 0.2 has been released. It is compatible with LTTV 0.12.30.


Changes since version 0.1 (from ChangeLog):

* conversion of the buffering system to per-cpu
* update to the liburcu 0.4 API
* upgrade to trace format 2.6; the latest lttv (0.12.30) may now be used
* add support for clone() interception in libinterfork
* port refactorings from the kernel tracer up to 0.173
* enhancements/refactor of libustcomm
* add sections in the manual about trace viewing and about tracing apps
not linked to libust
* debugging output is now enabled by adding -DUST_DEBUG to the CFLAGS
* usttrace: change ustd socket name to ustd-sock-PID
* change app socket directory name for something more descriptive
(/tmp/ust-app-socks)
* code cleanups
* various bug fixes



TODO's (from the TODO file):

- port changes from recent versions of lttng kernel (in progress by pmf)
- make cli interface for changing subbuffer size and number (in progress
by Douglas Santos)
- performance testing tool (in progress by Rafik Fahem)
- add buffering for receiving side in libustcomm
- improve support for combined kernel/userspace tracing
- make a trace testing script (that can assert whether a trace contains
certain events)
- make web site (in progress by pmf)
- document API
- make sure the proper structures are cacheline aligned, and test
performance, including multi-threaded
- use signal safe snprintf
- fix all valgrind errors
- test with smaller subbuffer sizes
- fix header/lib priority problem at compilation
- fix FIXME's in the code
- make a system (signal-based?) that allow the listener thread to not be
started initially
- make cli interface for flight recorder
- save_registers: save them only when the marker is active (complicated
because we need to know their value at the address that is put in struct
marker)
- make streaming work, including periodical flush
- ustd should work as a pool of threads
- support multiple simultaneous traces
- support more than one marker with the same channel and name on the
same line?
- In early tracing mode, the only channels that can be used reliably are
"metadata" and "ust". The "usttrace" tool always uses early tracing and
is hence subject to this limitation. Traces setup with the "ustctl" tool
("manual mode") are not subject to this limitation and can contain
channels that have any name. Also, when loading a library with dlopen(),
in order for markers in the library to generate events in the trace,
these markers must be in the same channel as an event that was in the
executable or its dynamically linked libraries that were loaded at start
time. If using early tracing, only the "ust" channel can be used. Fix
this. (RCU locking of channel structures in progress by Mathieu Desnoyers)



The release can be obtained at the following locations.

The tarballs:
http://lttng.org/files/ust/releases/

The documentation, including a quick start guide:
http://lttng.org/files/ust/manual/ust.html

The repository:
http://git.dorsal.polymtl.ca/?p=ust.git

--
Pierre-Marc Fournier







More information about the lttng-dev mailing list