[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] LTTng Xen port : finally in a repository near you



Hello,

I made a working version of the LTTng tracer for xen-unstable for x86.
Here is the pointer to my repository so you can try it out :

hg clone http://ltt.polymtl.ca/cgi-bin/hgweb.cgi xen-unstable-lttng.hg

Basic usage :

(see lttctl-xen -h)

lttctl-xen -c

(in a different console)
lttd-xen -t /tmp/xentrace1

(in the 1st console)
lttctl-xen -s

(tracing is active)

lttctl-xen -q
lttctl-xen -r

lttd-xen should automatically quit after writing the last buffers as
soon as lttctl-xen -r is issued.

Then, you must copy the XML facilities :

(see the http://ltt.polymtl.ca > QUICKSTART to see how to install the
ltt-control package which contains the XML facilities in your system)

lttctl-xen -e -t /tmp/xentrace1

View in the visualiser : (see the QUICKSTART to see how to install it)

lttv -m textDump -t /tmp/xentrace1

(not tested yet) : to visualize a dom0 trace with the xen hypervisor
information, one would have to collect the dom0 kernel trace and the Xen
trace and open them together with :
lttv -m textDump -t /tmp/xentrace1 -t /tmp/dom0trace

The current Linux kernel instrumentation is for 2.6.20. A backport might
be needed to 2.6.18 if there is no proper Xen support in 2.6.20 (I have
not followed the recent developments).


Currently broken/missing :

- Ressources are not freed when the trace channels are destroyed. So you
  basically have to reboot between taking different traces.
- My code in the hypervisor complains to the console that subbuffers
  have not been fully read when the trace channels are destroyed. The
  error printing is just done too fast : lttd-xen is still there and
  reading the buffers at that point. It will get fixed with proper
  ressource usage tracking of both Xen and lttd-xen (same as the first
  point above).
- x86_64 not tested, powerpc local.h and ltt.h missing (should be ripped
  from my Linux kernel LTTng).


Cheers,

Mathieu



* Mathieu Desnoyers (compudj@xxxxxxxxxxxxxxxxxx) wrote:
> 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
> 

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.