linux: Move SWSLatency outputs to Trace Compass core (details)
Commit
baeef85b1d5f1f1665329dbf8dc190d9b7bcbdc4
by Matthew Khouzam
linux: Move SWSLatency outputs to Trace Compass core
This commit moves the following outputs of the SWSLatency analysis from the incubator to Trace Compass core:
[1] Sched Wakeup/Switch Latencies output: A re-use of the SegmentStoreTableView provided by Trace Compass. Each segment is the time difference between a sched_wakeup event and a sched_switch event of the same process, identified by the same TID.
[2] Sched Wakeup/Switch Latency vs Time view: which uses the existing AbstractSegmentStoreScatterChartTreeViewer2 for its left side and the new SWSLatencyScatterGraphViewer for its right side. This view is a scatter chart, with each point showing the sched_wakeup/sched_switch latency vs the time when the latency happens.
[3] Sched Wakeup/Switch Statistics view: A re-use of the SegmentStoreStatisticsView provided by Trace Compass. This view displays different statistics relating to the SWSLatency analysis, with each level corresponding to a process.
[4] Sched Wakeup/Switch Density view: which uses the existing SegmentStoreTableViewer for its left side and the new SWSLatencyDensityViewer for its right side. This density view shows the number of latencies that corresponds to a specific duration.
Manual testing is required to make sure the outputs provided by the analysis are consistent and to ensure that they are exposed to the users in the UI of Trace Compass. There are no unit tests for the SWSLatency outputs. To test the outputs:
[1] Open a kernel trace that contains sched_wakeup and sched_switch events. Make sure that all of the 4 outputs are visible under Sched Wakeup Switch analysis.
[2] Sched Wakeup/Switch Latencies: Make sure there is a duration column. When clicked on an entry, a group of consecutive rows should be highlighted in the trace tab. The first event (in the group) should be a sched_wakeup event and the last one should be a sched_switch event. The tid of the sched_wakeup event should be the same as the next_tid of the sched_switch event. The difference of the time stamp of the first and last event should be the same as the value as the duration column.
[3] For the rest of the views, cross check to make sure that the data displayed make sense. For example, pick an event type, such as ls, and make sure that the event count in the Sched Wakeup/Switch Statistics view is the same as the number of dots displayed in the Sched Wakeup/Switch Latency vs Time view.
Change-Id: Ibdd3ed5f2260f7638e1c581e6bf1ad3d22083aa6 Signed-off-by: Hoang Thuan Pham <hoang.pham@calian.ca> Reviewed-on: https://git.eclipse.org/r/c/tracecompass/org.eclipse.tracecompass/+/203535 Reviewed-by: Marco Miller <marco.miller@ericsson.com> Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com> Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org> Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>