|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] LTTng Xen port
Hi,
My name is Mathieu Desnoyers, I am the current maintainer of the Linux Trace
Toolkit project, known as LTTng. This is a tracer for the 2.6 Linux kernels
oriented towards high performance and real-time applications.
I have read your tracing thread and I am surprised to see how much things
you would like in a tracer are already implemented and tested in LTTng. I am
currently porting my tracer to Xen, so I think it might be useful for you to
know what it provides. My goal is to do not duplicate the effort and save
everyone some time.
Here follows some key features of LTTng :
Architecture independant data types
Extensible event records
Self-describing traces
Variable size records
Fast (200 ns per event record)
Highly reentrant
Does not disable interrupts
Does not take lock on the critical path
Supports NMI tracing
Analysis/visualization tool (LTTV)
Looking at the integration of the existing LTTng implementation into Xen, I
came up with those two points for my Christmas whichlist :
Additionnal functionnalities that would be nice to have in Xen :
- RCU-style updates : would allow freeing the buffers without impact on tracing.
* I guess I could currently use :
for_each_domain( d )
for_each_vcpu( d, v )
vcpu_sleep_sync(v);
I think it will have a huge impact on the system, but it would only be
performed before trace buffers free.
- Polling for data in Xen from a dom0 process.
Xentrace currently polls the hypervisor each 100ms to see if there is data
that needs to be consumed. Instead of an active polling, it would be nice to
use the dom0 OS capability to put a process to sleep while waiting for a
resource. It would imply creating a module, loaded in dom0, that would wait
for a specific virq coming from the Hypervisor to wake up such processes.
We could think of exporting a complete poll() interface through sysfs or
procfs that would be a directory filled with the resources exported from the
Hypervisor to dom0 (which could include wait for resource freed, useful when
shutting down a domU instead of busy looping). It would help dom0 to schedule
other processes while a process is waiting for the Hypervisor.
You might also be interested in looking at :
- the website (http://ltt.polymtl.ca)
- LTTng Xen port design document (this one is different from the one posted by
Jimi)
(http://ltt.polymtl.ca/svn/ltt/branches/poly/doc/developer/lttng-xen.txt)
- OLS 2006 paper "The LTTng tracer : A Low Impact Performance and Behavior
Monitor for GNU/Linux"
(http://ltt.polymtl.ca/papers/desnoyers-ols2006.pdf)
Questions and constructive comments are welcome.
Mathieu
OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|