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

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



* Mark Williamson (mark.williamson@xxxxxxxxxxxx) wrote:
> Mathieu,
> 
> Nice one, thank you for getting involved in this.  Are you planning to 
> eventually submit this for inclusion in the Xen mainline?
> 

I did the original port, but my current focus is more oriented towards
having LTTng included in Linux mainline. As you probably guess, it is
changing quite a bit in the process. I plan to first get the kernel
tracing polished, and afterward to port this "polished" tracer to
userspace tracing and hypervisor. Since a first port has been done, it
will not represent too much work to do it again.

> Is there anything we (the community) can do to help?  E.g. patch review / 
> advise / etc?
> 

You could go through a code review of the Xen port I have done. Not the
tracing infrastructure itself, since it is scheduled for major changes,
but mostly the low-level calls I did in lttd-xen, lttctl-xen and the Xen
ltt-tracer.



Note that you have to expect the current "Linux Kernel Markers" to be
ported to the Xen hypervisor eventually.

Some advice about how I currently (fail) to do the teardown of traces
correctly: I depend on synchronize_sched() under Linux to prodive a
race-less efficient teardown (using read-copy-update for my data
structures). It is a core concept I depend on to provide fast and
efficient tracing. Has RCU finally been implement in Xen since the last
time I checked?

Thanks,

Mathieu

> Cheers,
> Mark
> 
> On Monday 25 June 2007, INAKOSHI Hiroya wrote:
> > 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
> 
> 
> 
> -- 
> Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
> Mark: To answer a question with a question: What use is a skateboard?
> Dave: Skateboards have wheels.
> Mark: My wheel has a wheel!
> 

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