update roadmap
[lttv.git] / ltt / branches / poly / doc / developer / lttng-lttv-roadmap.html
index bc5e4d99d88f1cf7af8e3cce37ce085b9f82dc6c..d0f722d8e504a51cac7a7ec83351058a23281d50 100644 (file)
@@ -9,107 +9,122 @@ for the TODO items :<br>
 (10): lowest priority<br>
 <br>
 <br>
+Dependencies are written between brackets [ ].<br>
+The # symbol marks who is currently working on the item.<br>
+The % symbol marks who is interested in the realisation of the item.<br>
+<br>
 <big>LTTV Roadmap<small><br>
 <br>
 * TODO<br>
-(4) create a event rate graphical view : Will be useful in conjonction with the
-  filter.<br>
-       # Parisa Heidari \<parisa.heidari@polymtl.ca\><br>
-(6) migrate align to lttv parser.<br>
-(7) create an analysis of function time (like a precise gprof)<br>
-  -> with gcc -f inline-functions<br>
-(10) Add cancel button to LTTV filter GUI window.
-<br>
+(1) Put back coherent facility checksumming.<br>
+(3) Add cluster support.<br>
+       # <A HREF="mailto:Eric Clement <eric.clement@polymtl.ca>">Eric Clement</A><br>
+(3) Make LTTV aware of type formats (visual separators) defined in the XML
+file.<br>
+       # <A HREF="mailto:Gabriel Matni <gabrien.matni@polymtl.ca>">Gabriel Matni</A><br>
+(3) Use a per architecture enumeration for traps.<br>
+(3) Change the byte pair "facility, event" id for a short combining the
+informatinon.<br>
+(4) Statistics per time window.<br>
+(4) Add Xen per physical CPU view.<br>
+(4) Add Xen per vcpu view.<br>
+(4) Disable plugins when threshold reached (i.e. too much process in control
+flow view). Draw, and, when the threshold is reached, stop drawing. The global
+statistics view can inhibit showing the per process stats.<br>
+(4) Add a visual artifact : PID 0 could be named swapper instead of UNNAMED for
+cpus > 0.<br>
+(4) Add event specific fields support to filter.<br>
+(4) Add a periodic event interval view. (useful to verify event periodicity)<br>
+(4) create a graphical per cpu activity view.<br>
+(4) Filter by target process.<br>
+(4) Compensate for time spent in probes in LTTV analysis.<br>
+(4) Add CPU, network, disk, memory usage histogram. [Per interval statistics]<br>
+(5) Add Python scripting hooks.<br>
+(5) Add GUI interface to take an hybrid trace.<br>
+(5) Flight recorder : start lttd automatically upon GUI trace control stop.<br>
+(5) Automatically detect traces with too much processes and disable faulty operations.<br>
+(5) Event sequence detector (inspired from regular expressions).<br>
+(7) Create a hardware counter viewer (low cost rate counters : L1 cache miss,
+page faults, interrupts...). This will be a generalisation of the event rate
+view into a view of the evolution of a user definable event field.<br>
+<br>
+* TO FIX<br>
+(10) Add cancel button to LTTV filter GUI window.<br>
+(10) Sometimes, in the control flow view, a process with 0 creation time is
+created in addition to the real process itself. Seems to be caused by end of
+process life.<br>
+(10) Statistics do not take in account the time spent in the mode present at
+the beginning of the trace. Example : real time spent in system call on behalf
+of process 0.<br>
 <br>
-* Done<br>
-Buffer aligned on page boundary -> use valloc.<br>
-per struct (struct align=x) support added to genevent (partial).<br>
-Add offset align generation for structs to genevent.<br>
-make lttv aware of the per facility long, void* and size_t types.<br>
-Read current trace header and buffer header.<br>
-redo lib tracefile : too much problems in there.<br>
-modify the rest of LTTV to match the API changes.<br>
-debian package<br>
-RPM package<br>
 <br>
 <big>LTT Next Generation Roadmap<small><br>
 <br>
 * TODO<br>
-(1) make LTT tracing code completely atomic (thus remove locks)<br>
-(1) port LTTng to 2.6.14 kernel.<br>
-(2) add efficient and secure user space tracing. (1 month)<br>
-(3) integrate LTTng State Dump : missing irq and process state.<br>
-       # Jean-Hugues Deschenes \<jean-hugues.deschenes@polymtl.ca\><br>
-(9) add genevent full functionnality : alignment, array, sequences, nested
-structures.<br>
-(7) add gcc -finstrument-functions instrumentation<br>
-(3) port LTTng to x86_64, PPC, alpha, user-mode Linux, Xen, MIPS, ARM, S/390.
-<br>
-<br>
-* Done<br>
-remove ltt-headers.h<br>
-remove ltt-log.h<br>
-Put trace->active later in _ltt_trace_start()<br>
-ltt_trace_create() remove sleep in spinlock use GFP_ATOMIC kmalloc<br>
-Fix the locking of module hooks.<br>
-Fix the traps -> disable nested logging for now.<br>
-Use per cpu spinlock on trace list.<br>
-Finish the control module, libltt and lttctl : netlink interface<br>
-Finish integrating lttctl with lttd.<br>
-fix lttctl signal waiting : use a flag.<br>
-Add ltt_write_commit_counter call to genevent.<br>
-Add information in the buffer header : buffer size, etc etc...<br>
-       -> this information is so small that we can repeat it. Makes flight recorder
-       easier to decode.<br>
-Add trace start structure to buffer start header.<br>
-fix genevent : take no lock if num traces active is 0.<br>
-Add type information per facility : it will help having a standard way
-to understand information coming from both kernel space and user space, and deal
-easily with 64 bits kernel with 64 and 32 bits processes (and with size_t know
-at compile time which can differ inside the same process from one library to
-another).<br>
-fix structures alignment, array and sequences too. -> trace dynamic.<br>
-add per facility alignment (inside structures).<br>
-add control of alignment.<br>
-add control for subbuffer size and number of subbuffers.<br>
-Add reserve - get TSC - alignment atomicity through the use of cmpxchg.<br>
-Add configurable alignment (LTT_ALIGNMENT).<br>
-Get ultra-precise logging with use of TSC (only) : only one do_gettimeofday
-read, and then we don't want the time flow to be altered by ntp.<br>
-Debian kernel package<br>
+(1) put probes in a hash table so we can connect the markers to them upon module
+load.<br>
+(1) efficient dynamic event filtering while recording trace.<br>
+       % Google<br>
+       % Sensis Corp. <A HREF="mailto:Bish, Tim <Tim.Bish@Sensis.com>">Tim Bish</A><br>
+       # <A HREF="mailto:Mathieu Desnoyers <compudj@krystal.dyndns.org>">Mathieu Desnoyers</A><br>
+(1) Support for compact event trace channel.<br>
+       % Google<br>
+       # <A HREF="mailto:Mathieu Desnoyers <compudj@krystal.dyndns.org>">Mathieu Desnoyers</A><br>
+(1) CPU Hotplug support. (Only ltt-heartbeat needs to be fixed).<br>
+       # <A HREF="mailto:Mathieu Desnoyers <compudj@krystal.dyndns.org>">Mathieu Desnoyers</A><br>
+(1) Add Xen support. (Trace buffer desallocation needs to be fixed)<br>
+       # <A HREF="mailto:Mathieu Desnoyers <compudj@krystal.dyndns.org>">Mathieu Desnoyers</A><br>
+(1) Integrate SystemTAP logging with LTTng.<br>
+(3) Change the byte pair "facility, event" id for a short combining the
+informatinon.<br>
+(4) instrument kernel bottom half irqsave, spinlocks, rwlocks, seqlocks, semaphores, mutexes, brlock.<br>
+(4) integrate NPTL instrumentation (see
+<A HREF="http://nptltracetool.sourceforge.net/">PTT</A>).<br>
+(4) Probe calibration kernel module.<br>
+(4) Make page faults detect nested fault without nesting 4 times in the page
+fault handler.<br>
+(5) Support CPUs with scalable frequency.<br>
+(5) Add boot time tracing support.<br>
+(5) Integrate LTTng and lttd with LKCD.<br>
+(7) Integrate periodical dump of perfctr hardware counters.<br>
+(8) Integrate periodical dump of SystemTAP computed information.<br>
+(9) Rethink facility logging code (genevent output). Maybe unneeded because of
+markers/probes mechanism.<br>
+(9) Add support for setjmp/longjmp and jump tables instrumentation to
+ltt-instrument-functions.<br>
+(9) Make ltt-usertrace-fast support internal heartbeat timer.<br>
+(3) port LTTng to :<br>
+alpha<BR>
+user-mode Linux<BR>
+Xen<BR>
+# IBM<BR>
+S/390<BR>
+RTLinux<BR>
+% Wind River for 2.6.14<BR>
+sparc64<BR>
+# Wind River<BR>
+sh4<br>
 <br>
 <br>
 <br>
 * TODO (low priority)<br>
 enhance RPM packages for lttng kernel<br>
 Integrate header generation (genevent) in kernel build system.<br>
-Multithreaded lttd.<br>
-Find a different way to printk from instrumentation : forbidden from schedule
-and wakeup (causes a deadlock).<br>
+Export channels via network sockets instead of writing them to disk.<br>
+Export buffers with time constraint for "live" visualisation. Use
+ltt_force_switch periodically from a timer to insure slow channels do not
+interfere with viewing.<br>
+Have an optional round-robin mode to write information into multiple channels
+from the same source.<br>
 <br>
 * Need to be discussed<br>
+Use 2.6.14 RelayFS control files.<br>
 Drop ltt-module-register and ltt-module-unregister, use exported variables.<br>
-RelayFS ioctl interface vs control through LTT netlink interface.<br>
 drop ltt_filter_control, use functions pointers instead.<br>
 Merge facilities headers into one big header.<br>
 Change the name of XML files from XML to something else.<br>
 Remove ltt-base.c.<br>
 <br>
-* Not planned for integration<br>
-Remove the callback struct from the trace struct.<br>
-<br>
-<br>
-<br>
-* lttng patch division (0.4.2+) :<br>
-<br>
-ltt-instrumentation.diff<br>
-ltt-facilities-headers.diff<br>
-ltt-facilities-loader.diff<br>
-ltt-facilities.diff<br>
-ltt-relayfs.diff<br>
-ltt-core.diff<br>
-<br>
-<br>
 Mathieu Desnoyers<br>
 
 
This page took 0.024893 seconds and 4 git commands to generate.