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

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



Hi Mathieu,

I am interested in LTTng-xen because I thought that it would be nice if
I can get traces on both xen and guest linux at the same time.  I
reviewed LTTng-xen and found that

* LTTng and LTTng-xen have a quite similar structure,
* a trace buffer resides in a hypervisor for LTTng-xen,
* it is currently impossible to get traces from guest linux because
there is no LTTng for 2.6.18-xen kernel, as you mentioned.

I had coarsely ported LTTng to 2.6.18-xen, though it is only for
i386.  Now I can get traces on xen and guest linux simultaneously, even
though they put records in different trace buffers.  Then I thought that
it would be more useful if they put records in xen's trace buffer and I
can analyze events from xen and linux guests with a single lttd and
lttctl running on Domain-0.  Do you have an opinion about that?

Regards,
Hiroya


Mathieu Desnoyers wrote:
> 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
>>
> 




_______________________________________________
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®.