X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fdoc%2Fdeveloper%2Flttng-lttv-roadmap.html;h=f3dcb2f54215ef439aad5026b24517f443e20862;hb=b2059fb2a170e0031e6640d7a9ad5f678b9fc19e;hp=8ec8c9a384a7aea54d785e71f04549db03749eff;hpb=6fab0e928959d20df6be7f8d0951375fbdedd58e;p=lttv.git
diff --git a/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html b/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html
index 8ec8c9a3..f3dcb2f5 100644
--- a/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html
+++ b/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html
@@ -9,102 +9,109 @@ for the TODO items :
(10): lowest priority
+Dependencies are written between brackets [ ].
+The # symbol marks who is currently working on the item.
+The % symbol marks who is interested in the realisation of the item.
+
LTTV Roadmap
* TODO
-(4) create a event rate graphical view : Will be useful in conjonction with the
- filter.
-(6) migrate align to lttv parser.
-(7) create an analysis of function time (like a precise gprof)
- -> with gcc -f inline-functions
-
+(3) Add cluster support.
+ # Eric Clement
+(3) Make LTTV aware of type formats (visual separators) defined in the XML
+file.
+(3) Use a per architecture enumeration for traps.
+(3) Change the byte pair "facility, event" id for a short combining the
+informatinon.
+(4) Statistics per time window.
+(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.
+(4) Add a visual artifact : PID 0 could be named swapper instead of UNNAMED for
+cpus > 0.
+(4) Add event specific fields support to filter.
+(4) Add a periodic event interval view. (useful to verify event periodicity)
+(4) create a graphical per cpu activity view.
+(4) Filter by target process.
+(4) Compensate for time spent in probes in LTTV analysis.
+(4) Add CPU, network, disk, memory usage histogram. [Per interval statistics]
+(5) Add Python scripting hooks.
+(5) Add GUI interface to take an hybrid trace.
+(5) Flight recorder : start lttd automatically upon GUI trace control stop.
+(5) Automatically detect traces with too much processes and disable faulty operations.
+(5) Event sequence detector (inspired from regular expressions).
+(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.
+
+* TO FIX
+(10) Add cancel button to LTTV filter GUI window.
+(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.
+(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.
-* Done
-Buffer aligned on page boundary -> use valloc.
-per struct (struct align=x) support added to genevent (partial).
-Add offset align generation for structs to genevent.
-make lttv aware of the per facility long, void* and size_t types.
-Read current trace header and buffer header.
-redo lib tracefile : too much problems in there.
-modify the rest of LTTV to match the API changes.
-debian package
-RPM package
LTT Next Generation Roadmap
* TODO
-(1) create RPM packages for lttng kernel
-(1) make LTT tracing code completely atomic (thus remove locks)
-(2) add efficient and secure user space tracing. (1 month)
-(3) integrate LTTng State Dump : missing irq and process state.
-(9) add genevent full functionnality : alignment, array, sequences, nested
-structures.
-(7) add gcc -finstrument-functions instrumentation
-
-
-* Done
-remove ltt-headers.h
-remove ltt-log.h
-Put trace->active later in _ltt_trace_start()
-ltt_trace_create() remove sleep in spinlock use GFP_ATOMIC kmalloc
-Fix the locking of module hooks.
-Fix the traps -> disable nested logging for now.
-Use per cpu spinlock on trace list.
-Finish the control module, libltt and lttctl : netlink interface
-Finish integrating lttctl with lttd.
-fix lttctl signal waiting : use a flag.
-Add ltt_write_commit_counter call to genevent.
-Add information in the buffer header : buffer size, etc etc...
- -> this information is so small that we can repeat it. Makes flight recorder
- easier to decode.
-Add trace start structure to buffer start header.
-fix genevent : take no lock if num traces active is 0.
-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).
-fix structures alignment, array and sequences too. -> trace dynamic.
-add per facility alignment (inside structures).
-add control of alignment.
-add control for subbuffer size and number of subbuffers.
-Add reserve - get TSC - alignment atomicity through the use of cmpxchg.
-Add configurable alignment (LTT_ALIGNMENT).
-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.
-Debian kernel package
+(1) Integrate SystemTAP logging with LTTng.
+(2) Post LTTng 0.6.x to LKML.
+(3) Change the byte pair "facility, event" id for a short combining the
+informatinon.
+(4) Add Xen support.
+ # Mathieu Desnoyers
+ # Parisa Heidari
+(4) efficient dynamic event filtering while recording trace.
+ % Sensis Corp. Tim Bish
+(4) instrument kernel bottom half irqsave, spinlocks, rwlocks, seqlocks, semaphores, mutexes, brlock.
+(4) Try to use my own non LOCK prefixed version of atomic operations : we are
+using per-CPU variables, so it should make it possible.
+(4) integrate NPTL instrumentation (see
+PTT).
+(4) Probe calibration kernel module.
+(4) Make page faults detect nested fault without nesting 4 times in the page
+fault handler.
+(5) Support CPUs with scalable frequency.
+(5) Integrate LTTng and lttd with LKCD.
+(7) Integrate periodical dump of perfctr hardware counters.
+(8) Integrate periodical dump of SystemTAP computed information.
+(9) Rethink facility logging code (genevent output). Maybe unneeded because of
+markers/probes mechanism.
+(9) Add support for setjmp/longjmp and jump tables instrumentation to
+ltt-instrument-functions.
+(9) Make ltt-usertrace-fast support internal heartbeat timer.
+(3) port LTTng to :
+alpha
+user-mode Linux
+Xen
+# IBM
+S/390
+RTLinux
+% Wind River for 2.6.14
* TODO (low priority)
+enhance RPM packages for lttng kernel
Integrate header generation (genevent) in kernel build system.
-Multithreaded lttd.
-Find a different way to printk from instrumentation : forbidden from schedule
-and wakeup (causes a deadlock).
+Export channels via network sockets instead of writing them to disk.
+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.
+Have an optional round-robin mode to write information into multiple channels
+from the same source.
* Need to be discussed
+Use 2.6.14 RelayFS control files.
Drop ltt-module-register and ltt-module-unregister, use exported variables.
-RelayFS ioctl interface vs control through LTT netlink interface.
drop ltt_filter_control, use functions pointers instead.
Merge facilities headers into one big header.
Change the name of XML files from XML to something else.
Remove ltt-base.c.
-* Not planned for integration
-Remove the callback struct from the trace struct.
-
-
-
-* lttng patch division (0.4.2+) :
-
-ltt-instrumentation.diff
-ltt-facilities-headers.diff
-ltt-facilities-loader.diff
-ltt-facilities.diff
-ltt-relayfs.diff
-ltt-core.diff
-
-
Mathieu Desnoyers