-
Notifications
You must be signed in to change notification settings - Fork 14
NewIn20
In this release 2 new extension points have been added:
- org.eclipse.tracecompass.tmf.core.analysis.ondemand
This extension point is used to provide on-demand analyses. Unlike regular analyses, the on-demand ones are only executed when the user specifies it.
- org.eclipse.tracecompass.tmf.ui.symbolProvider
This extension point can be used to transform from symbol addresses that might be found inside a TmfTrace into human readable texts, for example function names (e.g. used for Call Stack views)
The LTTng-Analyses project provides analysis script that can run on LTTng kernel traces to provide various metrics and statistics. If the LTTng-Analyses script are installed on the system (and accessible on the PATH), it is now possible to execute them directly from Trace Compass.
A new External Analyses tree item under the trace in the Project View will list the available analyses:
Double-clicking, or right-clicking and choosing Run Analysis will bring up a dialog showing the command that is about to be executed. If a time range is selected in any of the time-aware views, the analysis will run only on this time range. If there is no time range selection, it will run on the whole trace.
The analysis execution dialog. We see in the background the selected time range, and the corresponding --begin and --end parameters passed to the script.
Upon completion, a report containing the results will be opened, and placed under the Reports sub-tree item in the Project View. From there they can be re-opened or deleted. Each subsequent run of an analysis generates a new report.
One report can contain one or more result tables, representing the output of the analysis.
The result tables can carry a lot of information, it is often more meaningful to display this information into charts. The view menu has options to create such charts:
This action will bring up the chart configuration dialog, where the user can decide which columns should be used for the X and Y axis of each series:
This will insert the corresponding chart next to the table in the view. The indicated button can be used to hide the result table, to give more space to the chart itself.
Bar charts can be created the same way:
Chart of the "Scheduling Latency Frequency Distribution" analysis. We can see some scheduling latencies on the right took much more time than the rest of them.
The LTTng-Analyses mentioned above communicate with Trace Compass using the documented LAMI protocol. Any script implementing this protocol can be imported by the user and launched the same way.
Right-clicking on the External Analysis tree element brings up the option to import a new external analysis:
Clicking this option will open the script configuration dialog, where the user has to give a name and the command-line to the script:
If the script is found, and it correctly implements the LAMI protocol (i.e. responds to the --metadata command, among other things), it will be added and made available in the list of external analyses:
From there, it can be executed like any other built-in script, and the same features (reports, charts, etc.) are available.
The data-driven analysis and view of Trace Compass has been augmented to support data-driven pattern analysis. With this it possible to define a pattern matching algorithm and populate Timing Analysis views (similar to the views of chapter System call latency table). Other types of latency or timing analyses can be now defined using this approach. For more information about this feature refer to the Trace Compass User Guide.
Grid lines have been added to the time graph views such as the Control Flow view.
All views based on the time graph widgets (e.g. Control Flow view) now persist the current row selection (e.g. threads), filters and sort order (where applicable) for all open traces. Switching traces won't erase the settings.
It is now possible to search in views based on the time graph views using CTRL+F keyboard short-cut. For example, with this users have the ability to search for a process, TID, PTID, etc. within the Control Flow view or a CPU, IRQ, etc. within the Resource view.
It is possible to scroll horizontally within time graph views using Shift+MouseWheel on the horizontal scroll bar and within the time graph area.
see chapter Bookmarks and custom markers
For analyzing of analyzing system call latencies in the Linux Kernel using LTTng kernel traces, the System Call Latency Analysis has been added. Various views will now display the results of the analysis in different ways.
The System Call Latency table lists all latencies occurred per system call type occurred within the currently open trace.
The System Call Latency vs Time view visualizes system call latencies in the Linux Kernel over time.
The System Call Latency Statistics view shows statistics about system call latencies. I lists the minimum, maximum and average latency as well as the standard deviation for a given system call type.
The System Call Density view shows the distribution of the latencies for the current selected time window of the traces. Right-click with the mouse will open a context sensitive menu with 2 menu items for navigation to the minimum or maximum duration.
A critical flow analysis and view has been added to show dependency chains for a given process. Process priority information is part of the state tooltip. This makes it possible to detect if a higher priority process was block by a lower priority process.
To better understand what is happening in such a virtual environment, it is necessary to trace all the machines involved, guests and hosts, and correlate this information in an experiment that will display a complete view of the virtualized environment. The Virtual CPU view has been added for that.
In order to be able to correlate data from the guests and hosts traces, each hypervisor supported by Trace Compass requires some specific events, that are sometimes not available in the default installation of the tracer. For QEMU/KVM special LTTng kernel modules exist which need to be installed on the traced system. For more information, please follow the instructions in the Trace Compass user guide.
It is now possible to create bookmarks in time graph view for a single or time range selection. This will allow users to annotate their traces and easily navigate to region of interests. The bookmarks are shown in the newly added marker axis on the bottom of the time graph views. It is possible to minimize the marker axis as well as to hide marker categories.
Time graph views such as Control Flow or Resources view now highlight the durations where lost lost events occurred. .
It is possible to navigate from one marker forward and backwards in time graph views as well as it's possible to configure which marker type to include for the navigation. It is also possible to hide markers of a given type from the view menu.
A new API is provided to define programmatically trace specific markers. This can be used, for example, to visualize time periods in the time graph views.
The Resources view now displays the soft IRQ names together with the Soft IRQ numbers.
The Resources view now shows the execution contexts and adds the CPU states under the IRQ and SoftIRQ entries.
It is now possible to follow a single CPU from the Resources view using the context-sensitive menu. The CPU Usage view is the first view that uses this information to filter the CPU Usage per CPU.
It is possible to sort the columns of the tree by clicking on the column header. Subsequent clicking will change the sort order. The hierarchy, i.e. the parent-child relationship is kept. When opening a trace for the first time, the processes are sorted by birth time. The sort order and column will be preserved when switching between open traces. Note that when opening an experiment the processes will be sorted within each trace.
It is now possible to follow a single thread from the Control Flow view using the context-sensitive menu. The Critical Path view is the first view that uses this information to trigger its analysis for the selected thread.
The threads are no grouped under a trace tree node. The trace column has been removed.
It is now possible to switch between flat or hierarchical thread presentation per trace. For hierarchical presentation the threads are grouped under the parent thread. For the flat presentation no grouping is done.
It is now possible to zoom vertically in all time graph views, for example Control Flow view or Resources view, using the key combination Ctrl+'+' or Ctrl+'-' or using the mouse with Shift+Ctrl+mouse wheel. The key combination Ctrl+'0' resets the vertical zoom to the default.
It is now possible to visualize the CPU usage per CPU in the view. The filtering can be triggered by using the Follow CPU menu item of context sensitive menu of the Resources view.
The Linux Kernel memory analysis and view have been added using LTTng Kernel traces. The Kernel Memory Usage view displays the relative Kernel memory usage over time.
The Linux Kernel input/output analysis have been added using LTTng Kernel traces.
The I/O Activity view shows the disk I/O activity (throughput) over time.
A #dialog box has been added to manage XML analyses. This allows users to import, export and delete XML analysis files.
The Properties view now displays analysis properties when selecting an analysis entry in the Project explorer.
It is now possible to import traces and create an experiment with all imported traces using the Standard Import wizard.
It is now possible to import traces and create an experiment with all imported traces from the LTTng Control view.
It is now possible to create a filter from the search string using the CTRL+ENTER key combination. A new collapsible header will be shown for all active filters. Multiple cumulative filters can be added at the same time.
The T pattern can be augmented with a suffix to indicate the unit of seconds to be used by the format. The following patterns are supported: T (sec), Td (deci), Tc (centi), Tm (milli), Tu (micro), Tn (nano). Amongst other places it is useful when defining custom parsers that need a unit of seconds.
An extension point has been created to add a symbol provider for the Call Stack view. With this Trace Compass extensions can provide their own symbol mapping implementation. For traces taken with LTTng-UST 2.8 or later, the Callstack View will show the function names automatically, since it will make use of the debug information statedump events (which are enabled when using enable-event -u -a).
The Control Flow view have been updated to model thread ID 0 per CPU.
Importing traces have been optimized to speed-up the time it takes to import many log files.
- Cleaned-up of analyis requirement API
- Added API to support requirements on event types and event fields. Using event field requirements it possible to define analysis requirements on LTTng event contexts.
- Updated LTTng UST Call Stack and Kernel CPU Usage analysis requirement implementation
Pie Charts have been added to the Statistics view.
Traces taken with LTTng-UST 2.8 and above now supply enough information to link every event to its source code location, provided that the ip and vpid contexts are present, and that the original binaries with debug information are available.
A trace event originating from a shared library
Only the Binary Location information is shown if the binaries are not available on the system.
It was decided to disable the LTTng Live trace support because of the shortcomings documented in bug 486728. We look forward to addressing the shortcomings in the future releases in order to re-enable the feature.
See Bugzilla report Bugs Fixed in Trace Compass 2.0
See Bugzilla report Bugs Fixed in Trace Compass 2.0.1