| Summary: | [LTTng] Refactor plug-ins for LTTng 2.0 | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Francois Chouinard <fchouinard> |
| Component: | LinuxTools | Assignee: | Francois Chouinard <fchouinard> |
| Status: | CLOSED FIXED | QA Contact: | Francois Chouinard <fchouinard> |
| Severity: | normal | ||
| Priority: | P3 | CC: | overholt |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Bug Depends on: | 370499, 370501, 370554 | ||
| Bug Blocks: | |||
I'd like to strongly suggest we don't ship things as lttng2 unless that's what upstream LTTng would prefer. Is the plan you mention for 0.10 or for 1.0? Will 1.0 still contain any of the "old" LTTng plugins? (In reply to comment #1) > I'd like to strongly suggest we don't ship things as lttng2 unless that's what > upstream LTTng would prefer. Is the plan you mention for 0.10 or for 1.0? > Will 1.0 still contain any of the "old" LTTng plugins? We have to discern between user presentation and plug-in structure. From the user standpoint, the LTTng integration points to the latest (v2.0). If the user wants to use the legacy stuff (v0.x), he/she will have to install the "LTTng legacy" component. All the corresponding views are now labeled "legacy". So, yes, LT 1.0 will contain both v0.x and v2.0, but v0.x should be optional. As mentioned elsewhere, we would like to eventually ditch v0.x. Delivered with 1.0 |
While working at integrating LTTng 2.0 in Eclipse, we have come to the conclusion that the 'legacy' LTTng and the new LTTng can not easily co-exist in the same plug-ins... The new LTTng is a major rewrite that has a different file format, new state system, tracer control interface, scope (kernel + user space), etc. Even the views are impacted. Also, the legacy LTTng tracer - the thing we integrated so far - is no longer being actively developed by the Poly guys. However, since it is still in use 'out there', we don't feel comfortable getting rid of our integration just yet. But, since we don't plan on putting too much maintenance effort in it, we will internalize all its APIs. As mentionned above, LTTng 2.0 uses a new trace format (CTF) for which we developed a parser in Java. An interesting consequence of developing our own parser is that we will have a 100% Java solution for the LTTng Eclipse integration (i.e. we get rid of the C parsing libraries as well as the accompanying JNI wrapper). The CTF parser is not LTTng-specific and can be re-used as a headless component without TMF or LTTng. Finally, the new LTTng tracer is domain agnostic and can/will be used for application (non-kernel) traces. This means that it is no longer such a great idea to bundle tracer control and kernel trace analysis. The solution would be to package the legacy part 'as-is' and to introduce new features (and their accompanying plug-ins) for LTTng 2.0. In ASCII-art.it would look like this: +-----------+ + Kernel TA + +-----+-----+ + + +-----+-----+ +-----------+ + LTTng 2.0 + + LTTng 0.x + +-----+-----+ +-----+-----+ + + +----------------+ + +-----+-----+ +---------+ + TMF 1.0 +----+ CTF 1.x + +-----------+ +---------+ Where we would have the following plug-ins: [1] TMF (Tracing and Monitoring Framework) - org.eclipse.linuxtools.tmf (feature) - org.eclipse.linuxtools.tmf.core - org.eclipse.linuxtools.tmf.core.tests - org.eclipse.linuxtools.tmf.ui - org.eclipse.linuxtools.tmf.ui.tests [2] LTTng (legacy) - org.eclipse.linuxtools.lttng (feature) - org.eclipse.linuxtools.lttng.core - org.eclipse.linuxtools.lttng.core.tests - org.eclipse.linuxtools.lttng.ui - org.eclipse.linuxtools.lttng.ui.tests [3] CTF (Common Trace Format) generic parser - org.eclipse.linuxtools.ctf (feature) - org.eclipse.linuxtools.ctf.core - org.eclipse.linuxtools.ctf.core.tests [4] LTTng 2.0 (tracer control) - org.eclipse.linuxtools.lttng2 (feature) - org.eclipse.linuxtools.lttng2.core - org.eclipse.linuxtools.lttng2.core.tests - org.eclipse.linuxtools.lttng2.ui - org.eclipse.linuxtools.lttng2.ui.tests [5] Kernel Trace Analysis - org.eclipse.linuxtools.lttng2.kernel (feature) - org.eclipse.linuxtools.lttng2.kernel.core - org.eclipse.linuxtools.lttng2.kernel.core.tests - org.eclipse.linuxtools.lttng2.kernel.ui - org.eclipse.linuxtools.lttng2.kernel.ui.tests