tmf: Fix opening symbol config dialog for experiments
An ArrayIndexOutOfBounds exception could be thrown when opening
the symbol mapping configuration dialog in the context of a
multi-trace experiment. Index "-1" would be passed to
updateMessage(int).
When the window is first opened, the selection index is at -1,
simply skip the updateMessage() in this case.
Change-Id: I43b384016ec7dfff1b16b272b34155579bc101cc Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Reviewed-on: https://git.eclipse.org/r/70314 Reviewed-by: Hudson CI Reviewed-by: Robert Kiss <robert.kiss@gmail.com>
Matthew Khouzam [Mon, 11 Apr 2016 14:11:32 +0000 (10:11 -0400)]
ctf: Add comments to CTFClock
I was asked, is it deliberate that CTFClock's constructor is empty and
what is a clock, how does it work. This patch attempts to answer some of
the frequently asked questions.
Change-Id: I42dd8254f73df2d92d5e2497600b0b6ffc3682c4 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/70369 Reviewed-by: Hudson CI Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net> Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Patrick Tasse [Wed, 6 Apr 2016 15:08:54 +0000 (11:08 -0400)]
tmf: Workaround for leaking views
As a workaround for Bug 490400, clear the actions bars of views that
contribute to the tool bar manager so that their actions don't retain
references to the view when it is closed.
Change-Id: I3af262aad4416e40edf587f1313c8480517541b0 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/70059 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
This test has been failing intermittently but my suspicion is that
it fails when the server is under heavy load and the trace fails to
index in 20 seconds. To verify this, this change adds some output
as the wait condition is evaluated. This test didn't already log the
SWTBot output so this means that even with this change, it's not too
verbose.
Change-Id: Ic6da7b19c45faa5345b2118c902101db6e18276b Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/70329 Reviewed-by: Hudson CI Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
rcptt: Hard-code RCPTT runner to specific milestone release
So that it doesn't redownload all the time (every day).
This version (2.1.0-M7_rc1) seems to support Neon correctly so this
should be good enough for a while until we need to consume other
fixes.
Matthew Khouzam [Thu, 7 Apr 2016 20:52:42 +0000 (16:52 -0400)]
linux: make priority aspect work with tid == 0
Change-Id: I57353c2bef4e1ec0911e8d9d5c97cc954262ff1a Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/70176 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
Some tests have short timeouts (20 secs) that would usually not be
a problem on an performant machine but when build servers are under
load, especially in I/O, this can lead to intermittent failures.
This changes increases those 20 secs timeouts to 1 minute to help
in those situations.
tmf: Add the notions of timestamp and PID to ISymbolProvider
To support completely generic symbol resolution, the methods in
ISymbolProvider needs to consider two new concepts: the timestamp
of the query, and the process ID.
Process ID:
One trace can contain events from multiple processes. Even if
they all execute the same executable, the memory addresses, being
virtual, are specific to each process. The provider may need to know
the query is for which process in particular.
Timestamp:
Since libraries can be loaded and unloaded at runtime, with calls to
dlopen() and dlclose() for example, one address may refer to
different libraries at different moments in a trace. The provider
then needs to know the timestamp of the query, so it can refer to the
correct library if needed.
To ease the transition, we can introduce the new method as default
methods that will ignore the new parameters by default.
Patrick Tasse [Fri, 8 Apr 2016 17:04:59 +0000 (13:04 -0400)]
releng: Add SWTBot Generator feature to target definition files
This allows developers to use the SWTBot Generator by adding its
plug-ins from the target platform in their launch configuration.
The SWTBot Generator can then be launched with File -> New -> Other...
-> Run Test Recorder.
Change-Id: I845377851f442babd9cb108a0bebac61d6b06eca Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/70279 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Patrick Tasse [Thu, 7 Apr 2016 21:15:23 +0000 (17:15 -0400)]
analysis: Remove zoomed event list handling from Critical Path View
The Critical Path View does not use a zoomed event list so there is no
need to fake it. Its event list is built by the HorizontalLinksVisitor,
and contains all time events regardless of the resolution.
The zoomed event list was built only once for the full entry range and
was therefore strictly equal to the full event list. It was not more
detailed (since the full event list is already at the most detailed
level) and it was not a subset of the event list for the current time
range, since the zoom thread never updated it, due to the
CriticalPathBaseEntry having no child entries, preventing any recursion
into the deeper entries.
Change-Id: I469ef9314dcbcc835a5ef03c93d9ca11c5f7eb70 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/70184 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net> Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net> Reviewed-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Patrick Tasse [Tue, 5 Apr 2016 22:24:24 +0000 (18:24 -0400)]
tmf: Fix leaking static Histogram instances
The two Histogram instances in HistogramView are static and therefore
are retained by the class in the ClassLoader with references to the last
histogram data model, even after the view is closed.
Change-Id: I7853628e99a7bd8f3815253060bf891eed217cae Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/70058 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Matthew Khouzam [Thu, 7 Apr 2016 20:19:12 +0000 (16:19 -0400)]
linux: make TID analysis handle no TID more gracefully - Bug 491275
This stops AttributNotFoundExceptions from being thrown in the beginning
of a trace.
Change-Id: I917fa81b3882ce3c98f23f782a87a6f7f8947b10 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/70170 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com> Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
Matthew Khouzam [Wed, 6 Apr 2016 00:20:11 +0000 (20:20 -0400)]
linux.core: Introduce TID analysis
This analysis calculates a subset of what the kernel
state system has: which tid is running on which cpu.
This will allow these aspects to be available much faster
during state construction and in the reading after.
The new state system is typically 1% of the size of the kernel
state system. Therefore the seeks, even though they are log(n)
will accelerate. As getTid is something MANY analyses do often
this patch should improve performance accross the board.
In one corner case example, (System call analysis), where each state
required a TID, performance passed from 3000 to 140000 events per seconds.
On average, searches on the TID column should reduce in time by 5-10%
depending on the trace configuration (how many contexts etc...).
Matthew Khouzam [Wed, 6 Apr 2016 22:14:00 +0000 (18:14 -0400)]
os.linux: Do not rely on static initialisation order for layouts
Expose DefaultLayout#getInstance() instead of DefaultLayout#INSTANCE
This solves a weird problem where the layout could be null.
To reproduce this problem, define and run the following test suite:
@RunWith(Suite.class)
@Suite.SuiteClasses({
VirtualMachineAnalysisTest.class,
LttngKernelAnalysisTest.class,
PartialStateSystemTest.class,
StateSystemInMemoryTest.class,
StateSystemFullHistoryTest.class
})
public class TestSuite { }
Change-Id: I772ee0944334283d4b36118001a858322921d98a Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/69864 Reviewed-by: Alexandre Montplaisir <alexmonthy@efficios.com> Tested-by: Alexandre Montplaisir <alexmonthy@efficios.com> Reviewed-by: Hudson CI
It uses a few XML kernel stub traces to cover the various cases and events
of the IO analysis, then the content of the state system is verified at certain
times and for certain attributes.
Change-Id: I33f8deb62d9df6958fe88012ada3db5f077d0c09 Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/69668 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Houssem Daoud [Mon, 21 Mar 2016 13:42:01 +0000 (09:42 -0400)]
analysis.io: Introduce the input/output linux analysis
This analysis uses the block_* events to track the requests to the disks
and the number of sectors read and written. It also stores the reads and
writes by process from the syscalls.
Change-Id: I6e1b00d53eb3a217b01a906d4d1fd566e53481ef Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net> Signed-off-by: Houssem Daoud <houssemmh@gmail.com>
Reviewed-on: https://git.eclipse.org/r/69667 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
This makes KernelthreadInformationProvider only check pertinent state
values. The logic should be 100% equivalent, but the code should be
much more legible.
Change-Id: I96a962c6f2fa80b2a57d753a324c60c394dae349 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/69975 Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net> Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net> Reviewed-by: Hudson CI
Matthew Khouzam [Thu, 28 Jan 2016 20:40:29 +0000 (15:40 -0500)]
ctf: mini bitbuffer optimisation
Change-Id: I10806685649ae1f46d679189e6d4f022a060060e Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/65415 Reviewed-by: Hudson CI Reviewed-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Add ScenarioInfo as parameters to XML core module methods. This will
help to get the active scenario details (quark, scenarioName,
scenarioState, ...) and use them when necessary during a pattern
analysis. If there is no scenario, the value is set to null.
Change-Id: I17f65b73cb236e81221c355a3cb2fce9800d4fe5 Signed-off-by: Jean-Christian Kouame <jean-christian.kouame@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/68090 Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Hudson CI Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net> Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
tmf: Add an attribute pool for state system analyses
This new class allows to reuse attribute quarks in a state system. It can
typically be used by analyses who want to save data in the state system
for short intervals of time. Instead of creating a number of attributes with
lots of empty space before and after, they can reuse the same. It makes for
more compact time graph views as well.
Change-Id: Ie7f32eccb02096ef62df4c479a8e2bcfcd043af6 Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net> Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/67263 Reviewed-by: Hudson CI Reviewed-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Matthew Khouzam [Tue, 9 Feb 2016 02:34:57 +0000 (21:34 -0500)]
ctf: Replace StructDeclaration map with an array
This will cause a 10% performance improvement while reading a trace
The LinkedHashMap of fields in a struct declaration is much slower
to iterate through than a regular array. This patch replaces the map
with an array. This yields a performance gain of approx 10%.
The patch also changes some methods behavior.
* getMaximumSize() clamps to Integer#MAX_VALUE instead of overflowing
* addField no longer overwrites a value already in the declaration.
As addField has been modified, extra attention has to be put on
the parser in the case of degenerate test cases to maintain the
current behavior.
Change-Id: Id76b3432b2c973a1e2cbecba5a9b22ad76a68162 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/66168 Reviewed-by: Hudson CI
Najib Arbaoui [Thu, 31 Mar 2016 22:56:19 +0000 (18:56 -0400)]
analysis.os: New kernel memory usage view with Unit tests
This view keeps track of page allocation/deallocation events in the kernel.
It consists of a plot and a menu for thread selection. For a given time range,
the menu only lists threads in which there was activity. Values in the plot
are relative to the beginning of the selected trace.
Change-Id: Ie5605b7211828fd01accb920a5a735500fcae4b2 Signed-off-by: Najib Arbaoui <arbaouinajib@gmail.com> Signed-off-by: Samuel Gagnon <samuel.gagnon92@gmail.com>
Reviewed-on: https://git.eclipse.org/r/65957 Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net> Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net> Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
perf: Fix scenario names that should not contain %
The Scenario constructor in the o.e.test.performance contains this line of
code:
Assert.assertFalse(scenario.indexOf('%') >= 0);
This constructor does not appear to be called at insert, or it would fail, but
it is when reading the scenario data, which explains the performance tests job
failures when retrieving the data to display on
http://istmffastyet.dorsal.polymtl.ca.
Also changes the short names, that are limited to 40 characters in the database
Change-Id: If2a259e92595377a9a1872b008576a4564390038 Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/69750 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
It can happen that jobs never finish and tests calling waitForJobs
will run forever (or time out if a Jenkins/Hudson job is set to
timeout). Normally it would be possible to set a timeout on individual
JUnit tests but this doesn't seem to play well with SWTBot (to be
investigated).
To reproduce the issue before this patch, add this line to the
beginning of SWTBotUtils.waitForJobs method:
new Job("Foo") {@Override protected IStatus run(IProgressMonitor monitor) {while(true){}}}.schedule();
This simulates a never finishing job. Then run OpenTraceStressTest.
The test should never time out.
With this patch, waitForJobs will timeout after 5 mins (300000ms) by
default. When it does timeout, it will print each job, its state and
stack trace.
To reproduce the timeout added with this patch, apply the line as
mentioned above, reduce MAX_JOBS_WAIT_TIME to a smaller value (5000ms)
then run OpenTraceStressTest.
We often use Iterable in our APIs, due its minimal behavior
exposition. Unfortunately, there is no Iterable.stream() method,
the official way is done using StreamSupport and the corresponding
spliterator.
Since this is a very commonly used pattern, we can introduce a
small utility method that will make it less verbose.
At the same time, we can move the StreamFlattener into the new
utils class.
The Live Tracing feature is quite limited and error prone. Some
of the shortcomings are documented in bug 486728. Since there are no
short term plans to improve this in Neon, perhaps it is better to
disable this for now.
Patrick Tasse [Tue, 22 Mar 2016 19:53:15 +0000 (15:53 -0400)]
swtbot: Stabilize FilterColorEditorTest
A condition is added that waits for the image at the specified bounds
to have changed when compared to a specified current image. This ensures
that the cell has painted with required changes following user input.
ImageHelper now implements hashCode() and equals().
Change-Id: I444ab78f074ebd5c28f8b4aea4927b1c01558486 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/69076 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Matthew Khouzam [Tue, 29 Mar 2016 17:04:31 +0000 (13:04 -0400)]
tmf.ui: Make TmfEventsTable#PackColumns return a value
This allows extending classes to know whether the pack actually happened
or if it was fast returned. The quick return shows that the columns have
already been packed. If the method does pack the columns, we know that it
was done the first time (on a new trace open) or after. This can allow
extending classes to have a hook to a location where the columns have
been initialized as they are not yet in the consutructor or in "init".
Change-Id: Ia4f3ab76e144d937bb5a8eb5e7597c9e99b3114f Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/69469 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Michael Jeanson [Tue, 22 Mar 2016 22:53:28 +0000 (18:53 -0400)]
os.linux: Add per cpu thread 0 modeling
The current model handle thread 0 as a normal thread which is incorrect
since it is the idle or swapper thread and can be active concurently on
multiple CPUs.
This commit adds this concept to the state system and the control flow
view by using a special thread attribute name of "0_X" where X is the
CPU number.
Change-Id: I476927be378482751ee523fac77bbf4d260da54a Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-on: https://git.eclipse.org/r/69089 Reviewed-by: Hudson CI Reviewed-by: Alexandre Montplaisir <alexmonthy@efficios.com> Tested-by: Alexandre Montplaisir <alexmonthy@efficios.com> Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Matthew Khouzam [Fri, 11 Mar 2016 19:16:09 +0000 (14:16 -0500)]
os.linux: Fix CPU state when Softirq is interrupted
This patch makes the cpu the aggregate of the PROCESS, all SOFTIRQs
and all IRQs. The process now does a rigourous check of every state
in the CPU. This can be later replaced with a virtual or aggregate entry
if deemed necessary.
This patch fixes bug 481855.
Change-Id: I1fd368362daf269c12cc4f12f459c5a1e404e420 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Reviewed-on: https://git.eclipse.org/r/68002 Reviewed-by: Hudson CI
Patrick Tasse [Mon, 21 Mar 2016 20:50:14 +0000 (16:50 -0400)]
swtbot: Stabilize use of SWTBotUtils.maximizeTable()
When Ctrl+M is pressed, the resize and layout of the workbench part does
not necessarily occur immediately. For tests that depend on the part
being maximized, the method should block until the resize has occurred.
So far, this issue was only seen when SWTKeyboardStrategy is used.
SWT strategy posts events to SWT and this differs from the AWT strategy.
But the solution in this patch offers an additional safety that is
beneficial to all keyboard strategies.
Change-Id: I3afac9314a82c319064accca1fce00c1dbeb893e Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/69075 Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Patrick Tasse [Thu, 24 Mar 2016 21:18:07 +0000 (17:18 -0400)]
tmf: Fix SWTException in TimeGraphMarkerAxis
The zoom thread can call setMarkers() while the view containing the time
graph has been closed in the meantime, causing a SWTException: Widget is
disposed.
Change-Id: I586b3835fdee958e5e7c558f000954a3de5db616 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/69282 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Matthew Khouzam [Thu, 24 Mar 2016 13:33:07 +0000 (09:33 -0400)]
Fix task state unknown with Linux >= 4.1
The control flow view displays the task state as WAIT_UNKNOWN with
newer kernels. This is caused by a new task state value. The mask is
adjusted to fit this new value.
The fix is backward compatible.
Change-Id: I568dd51cd597ab64819cc6a83a3c6f06ec859489 Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com> Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/67377 Reviewed-by: Hudson CI Reviewed-by: Alexandre Montplaisir <alexmonthy@efficios.com> Tested-by: Alexandre Montplaisir <alexmonthy@efficios.com>
releng: Use org.eclipse.remote plugins instead of the feature
The top-level feature now includes the doc.isv plugin, which
in turn depends on all org.eclipse.remote features (serial,
telnet, etc.) which we don't need.
analysis : Remove checkNull() in Segment store statistic viewer
Previously, if the view was called and the trace is null, an exception
was raised. Now, if the trace is null, the view will do nothing. This situation
happens when using this viewer with XML views, the trace may still be null
when the viewer is updated.
Matthew Khouzam [Tue, 15 Mar 2016 00:28:02 +0000 (20:28 -0400)]
ss: no longer have a strings section in the HTNodes
The state systems nodes had a string section to allow for faster seeks
on the state system file if the entire interval was not loaded to memory.
This is never the case and it adds an extra integer to each non-integer state
as well as extra (but well tested) logic.
This patch makes the state sytem store each interval sequentially on a
given node.
Expect minimal performance difference, however, the size of the state system
may shrink a bit (approx 5%).
Change-Id: I01bc8594b7944fad97b6c9b715b848b6afa39913 Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Reviewed-on: https://git.eclipse.org/r/68404 Reviewed-by: Hudson CI
Bernd Hufmann [Thu, 17 Mar 2016 15:27:22 +0000 (11:27 -0400)]
control: Bug 489857: Fix live mode support for LTTng 2.4
Live streaming was added in 2.4.x. Since we can't retrieve whether
a session is live or not from a 2.4.x node, we copy the information
over from the session information at session creation time.
Note that this information gets lost when the user presses the refresh
button or restarts or Trace Compass.
For LTTng 2.5.0 and later it's possible to retrieve this information.
So we don't need copy this at creation time. This will make sure that
the session is recognized as live after a Trace Compass restart or a
refresh.
- Update 4.5 target with final Mars.2 update sites, use
non-composite where possible as they should not change (speeds up
dependency resolution)
- Update staging (4.6) target to not use the simrel update site, as
per recommendation by simrel team. Update update sites to latest
miletones; this required to fix the product dependencies. Luckily
those work with the 4.5 target too.
os.linux: Rename the "kernelanalysis" package to just "kernel"
Long due change that was previously withheld to not break the API.
This aligns the naming with the other internal packages, which
were already renamed.
Patrick Tasse [Wed, 2 Mar 2016 00:18:54 +0000 (19:18 -0500)]
tmf: Fix Select Next/Previous Marker navigation
Because the markers are sorted by time, when navigating to the next or
previous marker, the marker start time should always be visible.
The action should not rely on the 'ensureVisible' implementation of the
method setSelectionRangeNotify(), as this method will ensure that the
end time of the selection will be made visible when the start time has
not changed. This causes problems if there are two markers with the same
start time but the end time of the second is out of visible range. Since
the window range is modified, the resulting marker list may no longer
include the marker that should have been next in the navigation order.
Change-Id: I434d454d7411f8a00bf58406ad7acc3128472de7 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/67643 Reviewed-by: Hudson CI
Patrick Tasse [Tue, 15 Mar 2016 17:38:15 +0000 (13:38 -0400)]
tmf: Support horizontal scroll with mouse wheel in time graph
Horizontal scroll can now be performed using Shift+MouseWheel while over
the time graph control state area.
MouseWheel over the time scale, marker axis and horizontal scroll bar
will now perform horizontal scroll, while Ctrl+MouseWheel over those
same controls will now perform horizontal zoom.
Patrick Tasse [Mon, 7 Mar 2016 22:12:18 +0000 (17:12 -0500)]
tmf: Add collapsible event table header bar with applied filter labels
- The manual toggling of the event table header mode (search/filter) is
removed.
- When a search filter is applied, the header row icon is changed to a
"Add as Filter" icon. Tool tip support is added for this icon. Clicking
the icon will apply the search as a filter, and clear the search filter.
- Ctrl+Enter shortcut can be used to trigger the 'Add as Filter' action.
It can also be used instead of Enter while in a header cell 'search'
text editor to apply the regex immediately as a filter instead of as a
search filter.
- The 'Show Filter Bar' and 'Show Search Bar' actions in the header row
context menu are removed, and are replaced with the 'Add as Filter'
action when there is a search filter applied.
- If search filters are currently applied on multiple columns, they will
each be applied as separate filters.
- The 'Apply Preset Filter...' and 'Collapse Events' actions now add a
filter to the currently applied filters instead of replacing them.
- Implement TmfFilterObjectNode so that any external filter object can
be included in the filter tree model.
- The collapse filter is handled separately from other filters. It must
be invoked only on events which first match every other applied filter.
This allows for filtered events to be collapsed even if they are not
contiguous as unfiltered events.
- Implement TmfCollapseFilter.toString().
- Implement TmfEventsTableHeader. This is a header bar composite
displayed above the event table when any filter is applied.
- The header bar has one label for every filter that is currently
applied. The label name describes the filter. If the filter was created
from the table search/filter row, then clicking the label will set the
table highlighting to this label's regex (if no search filter is
currently applied).
- Clicking the 'remove' icon on any label will remove this particular
filter. If no filter remains, the header bar will be hidden.
- Pressing the Delete key will clear all filter highlighting (if no
search filter is currently applied).
- When the header bar is visible, clicking its background or collapse
icon will toggle its collapsed/expanded state to save space. Each filter
label name will be set as a tool tip for the smaller label.
- A NullPointerException is fixed when cancelling a search before its
event request has been created.
Change-Id: I40cc3e3389f1ce43145e2a6025ed1c2a99d029e8 Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/67928 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>