| 1 | <html> |
| 2 | <body> |
| 3 | <center><big><big>LTTV & LTTng roadmap<small><small></center> |
| 4 | <br> |
| 5 | <br> |
| 6 | Here are the roadmaps for the LTTV and LTTng development. I use a priority indice |
| 7 | for the TODO items :<br> |
| 8 | (1) : very high priority<br> |
| 9 | (10): lowest priority<br> |
| 10 | <br> |
| 11 | <br> |
| 12 | Dependencies are written between parenthesis ( ).<br> |
| 13 | The # symbol marks who is currently working on the item.<br> |
| 14 | The % symbol marks who is interested in the realisation of the item.<br> |
| 15 | <br> |
| 16 | <big>LTTV Roadmap<small><br> |
| 17 | <br> |
| 18 | * TODO<br> |
| 19 | (4) create a event rate graphical view : Will be useful in conjonction with the |
| 20 | filter.<br> |
| 21 | # <A HREF="mailto:Parisa Heidari <parisa.heidari@polymtl.ca>">Parisa Heidari</A><br> |
| 22 | (6) migrate align to lttv parser.<br> |
| 23 | (7) create an analysis of function time (like a precise gprof)<br> |
| 24 | -> with gcc -f inline-functions<br> |
| 25 | (10) Add cancel button to LTTV filter GUI window. |
| 26 | <br> |
| 27 | <br> |
| 28 | * Done<br> |
| 29 | per struct (struct align=x) support added to genevent (partial).<br> |
| 30 | Add offset align generation for structs to genevent.<br> |
| 31 | make lttv aware of the per facility long, void* and size_t types.<br> |
| 32 | Read current trace header and buffer header.<br> |
| 33 | redo lib tracefile : too much problems in there.<br> |
| 34 | modify the rest of LTTV to match the API changes.<br> |
| 35 | debian package<br> |
| 36 | RPM package<br> |
| 37 | <br> |
| 38 | <big>LTT Next Generation Roadmap<small><br> |
| 39 | <br> |
| 40 | * TODO<br> |
| 41 | (1) add genevent full functionnality : alignment, array, sequences, nested |
| 42 | structures.<br> |
| 43 | # <A HREF="mailto:Mathieu Desnoyers <compudj@krystal.dyndns.org>>">Mathieu Desnoyers</A><br> |
| 44 | (1) port LTTng to 2.6.14 kernel. (depends on genevent rewrite)<br> |
| 45 | (2) add efficient and secure user space tracing. (1 month)<br> |
| 46 | (3) integrate LTTng State Dump : missing irq and process state.<br> |
| 47 | # <A HREF="mailto:Jean-Hugues Deschenes <jean-hugues.deschenes@polymtl.ca>">Jean-Hugues Deschenes</A><br> |
| 48 | (7) add gcc -finstrument-functions instrumentation<br> |
| 49 | (3) port LTTng to : (depends on 2.6.14 port)<br> |
| 50 | x86_64<BR> |
| 51 | #Autodesk <A HREF="mailto:Francois L'Archeveque <fla@discreet.com>">François |
| 52 | L'Archêveque</A> for 2.6.9 RedHat Enterprise<BR> |
| 53 | %Wind River for 2.6.10<BR> |
| 54 | PPC<BR> |
| 55 | PPC64<BR> |
| 56 | %Wind River for 2.6.10<BR> |
| 57 | alpha<BR> |
| 58 | user-mode Linux<BR> |
| 59 | Xen<BR> |
| 60 | MIPS<BR> |
| 61 | MIPS64<BR> |
| 62 | %Wind River for 2.6.10<BR> |
| 63 | ARM<BR> |
| 64 | S/390<BR> |
| 65 | <br> |
| 66 | <br> |
| 67 | * Done<br> |
| 68 | remove ltt-headers.h<br> |
| 69 | remove ltt-log.h<br> |
| 70 | Put trace->active later in _ltt_trace_start()<br> |
| 71 | ltt_trace_create() remove sleep in spinlock use GFP_ATOMIC kmalloc<br> |
| 72 | Fix the locking of module hooks.<br> |
| 73 | Fix the traps -> disable nested logging for now.<br> |
| 74 | Use per cpu spinlock on trace list.<br> |
| 75 | Finish the control module, libltt and lttctl : netlink interface<br> |
| 76 | Finish integrating lttctl with lttd.<br> |
| 77 | fix lttctl signal waiting : use a flag.<br> |
| 78 | Add ltt_write_commit_counter call to genevent.<br> |
| 79 | Add information in the buffer header : buffer size, etc etc...<br> |
| 80 | -> this information is so small that we can repeat it. Makes flight recorder |
| 81 | easier to decode.<br> |
| 82 | Add trace start structure to buffer start header.<br> |
| 83 | fix genevent : take no lock if num traces active is 0.<br> |
| 84 | Add type information per facility : it will help having a standard way |
| 85 | to understand information coming from both kernel space and user space, and deal |
| 86 | easily with 64 bits kernel with 64 and 32 bits processes (and with size_t know |
| 87 | at compile time which can differ inside the same process from one library to |
| 88 | another).<br> |
| 89 | fix structures alignment, array and sequences too. -> trace dynamic.<br> |
| 90 | add per facility alignment (inside structures).<br> |
| 91 | add control of alignment.<br> |
| 92 | add control for subbuffer size and number of subbuffers.<br> |
| 93 | Add reserve - get TSC - alignment atomicity through the use of cmpxchg.<br> |
| 94 | Add configurable alignment (LTT_ALIGNMENT).<br> |
| 95 | Get ultra-precise logging with use of TSC (only) : only one do_gettimeofday |
| 96 | read, and then we don't want the time flow to be altered by ntp.<br> |
| 97 | Debian kernel package<br> |
| 98 | make LTT tracing code completely atomic (thus remove locks)<br> |
| 99 | Buffer aligned on page boundary -> use valloc.<br> |
| 100 | <br> |
| 101 | <br> |
| 102 | <br> |
| 103 | * TODO (low priority)<br> |
| 104 | enhance RPM packages for lttng kernel<br> |
| 105 | Integrate header generation (genevent) in kernel build system.<br> |
| 106 | Multithreaded lttd.<br> |
| 107 | Find a different way to printk from instrumentation : forbidden from schedule |
| 108 | and wakeup (causes a deadlock).<br> |
| 109 | <br> |
| 110 | * Need to be discussed<br> |
| 111 | Drop ltt-module-register and ltt-module-unregister, use exported variables.<br> |
| 112 | RelayFS ioctl interface vs control through LTT netlink interface.<br> |
| 113 | drop ltt_filter_control, use functions pointers instead.<br> |
| 114 | Merge facilities headers into one big header.<br> |
| 115 | Change the name of XML files from XML to something else.<br> |
| 116 | Remove ltt-base.c.<br> |
| 117 | <br> |
| 118 | * Not planned for integration<br> |
| 119 | Remove the callback struct from the trace struct.<br> |
| 120 | <br> |
| 121 | <br> |
| 122 | <br> |
| 123 | * lttng patch division (0.4.2+) :<br> |
| 124 | <br> |
| 125 | ltt-instrumentation.diff<br> |
| 126 | ltt-facilities-headers.diff<br> |
| 127 | ltt-facilities-loader.diff<br> |
| 128 | ltt-facilities.diff<br> |
| 129 | ltt-relayfs.diff<br> |
| 130 | ltt-core.diff<br> |
| 131 | <br> |
| 132 | <br> |
| 133 | Mathieu Desnoyers<br> |
| 134 | |
| 135 | |
| 136 | </body> |
| 137 | </html> |