Progress in LTTV :
* 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.

*TODO
Read current trace header and buffer header.
migrate align to lttv parser.
make lttv aware of the per facility long, void* and size_t types.


Here the status of the work in progress for LTT experimental

* 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).


* TODO
add user space tracing.
add genevent full functionnality : alignment, array, sequences, nested structures.



* TODO (low priority)
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).

* Need to be discussed
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.



* Next experimental release patch division :

ltt-instrumentation.diff
- ltt-configmenu.diff (put in ltt-core.diff)
ltt-facilities-headers.diff
ltt-facilities-loader.diff
ltt-facilities.diff
ltt-instrumentation.diff
ltt-relayfs.diff
ltt-time.diff
ltt-core.diff


Mathieu Desnoyers