Arm® Streamline Performance Analyzer User Guide

Version 6.8


Table of Contents

Preface
About this book
Using this book
Glossary
Typographic conventions
Feedback
Other information
1 Introduction to Arm Streamline Performance Analyzer
1.1 Overview of Arm Streamline Performance Analyzer
1.2 New features and updates
1.3 Features of Arm Streamline editions
1.4 Standards compliance in Arm Streamline
1.5 Importing the capture examples
2 Target Setup
2.1 Arm Streamline prerequisites
2.2 Setup scenarios for Linux targets
2.2.1 Comparison of user space gator and kernel space gator
2.2.2 Validating the target setup
2.2.3 Building and installing user space gator
2.2.4 Building and installing kernel space gator
2.3 Preparing and building your Linux kernel
2.4 Required kernel configuration menu options
2.5 Building and installing the gator daemon
2.5.1 The pre-built gator daemon
2.5.2 Building the gator daemon yourself
2.6 Building the gator module
2.7 Running the gator daemon on your target
2.8 Profiling applications without root access
2.9 Connecting to an Android target
2.9.1 Installing and using the Android daemon application
2.10 Capturing data on an Android target
2.11 Capturing data locally on a target
2.12 Stopping the gator daemon
2.13 gatord command-line options
2.14 Support for other hardware
2.14.1 Getting L2C-310 memory-mapped peripherals working with Arm Streamline
2.14.2 CCN
2.14.3 Setting up Arm Streamline to support an Arm®Mali™-based device
2.14.4 Setting up Arm Streamline to support Arm® Mali™-V500
2.15 Recommended compiler options
3 Target and Data Views
3.1 Target view
3.2 Starting a capture session
3.2.1 Connection Browser dialog box
3.2.2 Setup Target dialog box
3.3 Arm Streamline Data view overview
3.3.1 Capture color-coding
3.4 Re-analyzing stored Arm Streamline capture data
3.5 Duplicating a capture
3.6 Merging captures
3.6.1 Merge captures dialog box
3.7 Setting preferences
3.8 Importing perf data
3.9 Importing SoC Designer profiling data
4 Capture and Analysis Options
4.1 Capture & Analysis Options dialog box settings
5 Counter Configuration
5.1 Opening the Counter Configuration dialog box
5.2 Counter Configuration dialog box structure
5.3 Adding new events to the Events to Collect list
5.4 Removing events from the Events to Collect list
5.5 Counter Configuration dialog box settings
5.6 Events specific to Arm® Mali™ technology
5.7 Mali Midgard counters
5.8 Mali Bifrost counters
5.9 Event-based sampling
5.10 Setting up event-based sampling
6 Live View and Timeline View
6.1 Live view overview
6.1.1 Interactive counters panel
6.1.2 Adding and removing events in Live view
6.2 Timeline view overview
6.3 Charts
6.3.1 Default charts
6.3.2 Charts that are specific to Arm® Mali™-based targets
6.3.3 Moving and re-sizing charts
6.3.4 Chart disclosure control
6.3.5 Per-cluster charts
6.3.6 Quick access tooltips
6.3.7 Cross Section Marker
6.3.8 Filtering using the caliper controls
6.4 Chart configuration
6.4.1 Chart configuration panel
6.4.2 Chart configuration toolbar options
6.4.3 Chart configuration series options
6.4.4 Chart configuration templates
6.5 Image download
6.5.1 Separate debug files
6.6 Details panel in the Timeline view
6.6.1 Details panel modes
6.6.2 Heat Map mode
6.6.3 Core Map and Cluster Map modes
6.6.4 Filtering by threads or processes
6.6.5 Selecting the activity source
6.6.6 Samples mode
6.6.7 Processes mode
6.6.8 Images mode
6.6.9 OpenCL mode
6.7 Mali Graphics Debugger (MGD) Mode in Live view
6.8 Toolbar options in the Live and Timeline views
6.9 Contextual menu options in the Live and Timeline views
6.10 Keyboard shortcuts in the Live and Timeline views
6.11 Warnings tag
6.12 Counter classes
6.13 Visual Annotation in the Timeline view
6.14 Merged captures
7 Table Views: Call Paths and Functions
7.1 Toolbar options in the table views
7.2 Call Paths view contextual menu options
7.3 Functions view contextual menu options
7.4 Keyboard shortcuts in the table views
7.5 Sorting table reports
7.6 Call Paths view column headers
7.7 Functions view column headers
8 Code View
8.1 Code view basics
8.2 Selecting rows in the Code view
8.3 Path prefix substitution in the Code view
8.4 Using the Find field in the Code view
8.5 Code view toolbar options
8.6 Code view keyboard shortcuts
9 Code Annotations
9.1 Annotate overview
9.2 Adding string annotations to your code
9.3 Visual Annotate overview
9.4 Adding Visual Annotate to your code
9.5 Kernel annotations
9.6 Annotate macros
9.7 Importing the Streamline_annotate example
10 Log View
10.1 Log view column headers
10.2 Log view filter fields and toolbar options
10.3 Log view contextual menu options
11 Capturing Energy Data
11.1 Energy Probe overview
11.2 Energy Probe requirements
11.3 Shunt resistor selection for Energy Probe
11.4 Setting up Energy Probe
11.5 Adding the caiman application to Arm Streamline
11.6 Updating your firmware
11.7 Energy Probe data in Arm Streamline
11.8 Setting up National Instrument Multifunction Data Acquisition devices (NI DAQ) to capture energy data
12 Advanced gator Customizations
12.1 Creating a configuration.xml file
12.2 Capturing energy data locally and importing it to a capture
12.3 Using the gator_events_mmapped.c custom counters example
12.4 Creating custom performance counters with kernel space gator
12.5 gator_events functions
12.6 Creating filesystem and ftrace counters
12.7 Attributes for custom, filesystem, and ftrace counters in the events XML file
12.8 Enabling atrace and ttrace annotations
12.9 Profiling the Linux kernel
12.10 Adding support to gatord for a new CPU or perf PMU
12.11 Increasing the memory that is available for Arm Streamline
12.12 Automatically start gator on boot
13 Bare-Metal Support
13.1 Bare-metal support overview
13.2 Profiling with on-target RAM buffer
13.2.1 Configuring barman
13.2.2 Extracting and importing data
13.2.3 Barman use case script
13.3 Profiling with System Trace Macrocell
13.3.1 STM workflow
13.3.2 Importing an STM trace
13.4 Profiling with Instrumentation Trace Macrocell
13.4.1 ITM workflow
13.4.2 Importing an ITM trace
13.5 Profiling with Embedded Trace Macrocell
13.5.1 ETM workflow
13.6 Profiling with Instruction Trace
13.6.1 Importing instruction trace
13.6.2 Instruction trace notes and restrictions
13.7 Custom counters
13.7.1 Configuring custom counters
13.7.2 Sampled and nonsampled counters
13.8 Data storage
13.9 Interfacing with barman
13.9.1 Configuration #defines
13.9.2 Annotation #defines
13.9.3 Barman public API
13.9.4 External functions to implement
14 Fastline
14.1 Fastline overview
14.2 Fastline Wizard
15 Using Arm Streamline on the Command Line
15.1 Opening Arm Streamline-enabled command prompts or shells
15.2 Arm Streamline command-line options
15.3 Outputting command-line data to a file
15.4 Exporting the Heat Map from the command-line
15.5 Accessing the Bare-Metal generation mechanism from the command line
15.6 Importing a trace from the command-line
16 JIT and Python Profiling Support
16.1 JIT profiling support
16.2 Python profiling support
16.2.1 Profiling a Python module
16.2.2 Profiling individual functions in a Python module
16.2.3 Attaching Python script sources for analysis
16.2.4 Viewing scripts in analysis
17 Troubleshooting Common Arm Streamline Issues
17.1 Troubleshooting target setup issues
17.2 Troubleshooting target connection issues
17.3 Troubleshooting Android issues
17.4 Troubleshooting gator issues
17.5 Troubleshooting perf import issues
17.6 Troubleshooting MGD Mode issues
17.7 Troubleshooting Energy Probe issues
17.8 Troubleshooting report issues

List of Figures

1-1 Arm Streamline graphical user interface
3-1 Target view
3-2 Starting a capture session
3-3 Connection Browser in Arm Streamline
3-4 Automatically setting up Arm Streamline on the target
3-5 Arm Streamline Data view
3-6 Color-coded captures
3-7 Analyze dialog box
3-8 Duplicating a capture
3-9 Merge captures dialog box
3-10 An imported SoC Designer System Analyzer profile in Heat Map view
3-11 An imported SoC Designer System Analyzer profile in CAM view
4-1 Capture & Analysis Options dialog box
5-1 Target view - Counter Configuration
5-2 Counter Configuration dialog box
5-3 Interface drop-down menu
5-4 Setting up event-based sampling
6-1 Live view
6-2 Dead process in Live view
6-3 Interactive counters panel and Live view
6-4 Timeline view
6-5 Charts specific to a Mali Midgard-based target
6-6 Moving a chart using the handle control
6-7 Using the chart disclosure control to show per-core data
6-8 Per-cluster charts
6-9 Quick Access tooltip
6-10 Cross Section Marker blurred border
6-11 Using the calipers to filter
6-12 Chart configuration button
6-13 Chart configuration panel
6-14 Filled chart
6-15 Line chart
6-16 Bar chart
6-17 Heatmap chart
6-18 Stacked chart
6-19 Data from series A obstructed by data from series B
6-20 Logarithmic scale
6-21 Series options
6-22 Warning message for a missing counter
6-23 Select Download process images from target.
6-24 Image Download dialog
6-25 Adding a process
6-26 Heat Map mode
6-27 Filtering annotations
6-28 Core Map mode with five cores
6-29 Cluster Map mode with two clusters
6-30 CPU Activity chart with a thread selected in the Heat Map
6-31 Processes focus menu
6-32 Samples mode
6-33 Processes mode
6-34 Images mode
6-35 OpenCL mode
6-36 Time delta between connected commands
6-37 Selecting a command in OpenCL mode
6-38 Zooming out in OpenCL mode
6-39 OpenCL mode tooltip
6-40 Filtering in OpenCL mode
6-41 Zoom level drop-down list
6-42 Dark color scheme
6-43 Light color scheme
6-44 Bookmarks
6-45 Warnings tag
6-46 Counter classes
6-47 Visual annotation in the Timeline view
6-48 Merged heat map
6-49 System-wide merge captures disclose
7-1 Multi-level sort
8-1 Code view
8-2 Missing source file
8-3 Path Prefix Substitutions dialog box
8-4 Find field
9-1 Custom Activity Maps
9-2 String annotation overlays
9-3 Visual Annotate in the Timeline view
10-1 Annotations in the Log view
10-2 Log view totals panel
11-1 Energy Probe schematic
11-2 Energy Probe electrical connection example
11-3 Connection to target
11-4 Tool Path field
11-5 Energy Probe data in the Timeline view
11-6 Connections for NI USB-621x
12-1 Sine counter chart
13-1 ETM3 configuration
13-2 Select the Trace capture method in the DTSL configuration dialog.
13-3 ETM4 configuration
13-4 Select Instruction Trace.
13-5 Select trace sources to import.
13-6 Select executable images.
13-7 Configure import options.
14-1 Select the Fastline Wizard.
14-2 Select a model.
14-3 Enter the Linux information.
14-4 Enter the ELF file location.
14-5 Adjust capture details as required.
14-6 Select when to start profiling.
15-1 Functions report generated using report mode
15-2 Timeline view data output to a text file
16-1 Analyze dialog box (JIT Dump Files)
16-2 Analyze dialog box (Script Search Paths)
16-3 Python call paths view
16-4 Python code view

Release Information

Document History
Issue Date Confidentiality Change
A 19 October 2010 Non-Confidential ARM Streamline Performance Analyzer 1.0
B 19 January 2011 Non-Confidential Update for DS-5 version 5.4
C 19 April 2011 Non-Confidential Update for DS-5 version 5.5
D 19 July 2011 Non-Confidential Update for DS-5 version 5.6
E 19 September 2011 Non-Confidential Update for DS-5 version 5.7
F 19 November 2011 Non-Confidential Update for DS-5 version 5.8
G 19 February 2012 Non-Confidential Update for DS-5 version 5.9
H 19 May 2012 Non-Confidential Update for DS-5 version 5.10
I 19 July 2012 Non-Confidential Update for DS-5 version 5.11
J 19 October 2012 Non-Confidential Update for DS-5 version 5.12
K 19 December 2012 Non-Confidential Update for DS-5 version 5.13
L 15 March 2013 Non-Confidential Update for DS-5 version 5.14
M 14 June 2013 Non-Confidential Update for DS-5 version 5.15
N 13 September 2013 Non-Confidential Update for DS-5 version 5.16
O 13 December 2013 Non-Confidential Update for DS-5 version 5.17
P 14 March 2014 Non-Confidential Update for DS-5 version 5.18
Q 27 June 2014 Non-Confidential Update for DS-5 version 5.19
R 17 October 2014 Non-Confidential Update for DS-5 version 5.20
S 20 March 2015 Non-Confidential Update for DS-5 version 5.21
T 15 July 2015 Non-Confidential Update for DS-5 version 5.22
U 15 October 2015 Non-Confidential Update for DS-5 version 5.23
V 15 March 2016 Non-Confidential Update for DS-5 version 5.24
W 31 May 2016 Non-Confidential Update for DS-5 version 5.25.0.1
X 11 August 2016 Non-Confidential Update for DS-5 version 5.25.0.2
0600-00 30 September 2016 Non-Confidential Update for Streamline version 6.0. Document numbering scheme changed.
0601-00 04 November 2016 Non-Confidential Update for Streamline version 6.1
0602-00 10 March 2017 Non-Confidential Update for Streamline version 6.2
0603-00 12 May 2017 Non-Confidential Update for Streamline version 6.3. Document title changed.
0604-00 30 August 2017 Non-Confidential Update for Streamline version 6.4.
0605-00 08 November 2017 Non-Confidential Update for Streamline version 6.5.
0606-00 08 February 2018 Non-Confidential Update for Streamline version 6.6.
0607-00 08 June 2018 Non-Confidential Update for Streamline version 6.7.
0608-00 16 October 2018 Non-Confidential Update for Arm Streamline version 6.8.

Non-Confidential Proprietary Notice

This document is protected by copyright and other related rights and the practice or implementation of the information contained in this document may be protected by one or more patents or pending patent applications. No part of this document may be reproduced in any form by any means without the express prior written permission of Arm. No license, express or implied, by estoppel or otherwise to any intellectual property rights is granted by this document unless specifically stated.

Your access to the information in this document is conditional upon your acceptance that you will not use or permit others to use the information for the purposes of determining whether implementations infringe any third party patents.

THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE DOCUMENT. For the avoidance of doubt, Arm makes no representation with respect to, and has undertaken no analysis to identify or understand the scope and content of, third party patents, copyrights, trade secrets, or other rights.

This document may include technical inaccuracies or typographical errors.

TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

This document consists solely of commercial items. You shall be responsible for ensuring that any use, duplication or disclosure of this document complies fully with any relevant export laws and regulations to assure that this document or any portion thereof is not exported, directly or indirectly, in violation of such export laws. Use of the word “partner” in reference to Arm’s customers is not intended to create or refer to any partnership relationship with any other company. Arm may make changes to this document at any time and without notice.

If any of the provisions contained in these terms conflict with any of the provisions of any click through or signed written agreement covering this document with Arm, then the click through or signed written agreement prevails over and supersedes the conflicting provisions of these terms. This document may be translated into other languages for convenience, and you agree that if there is any conflict between the English version of this document and any translation, the terms of the English version of the Agreement shall prevail.

The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere. All rights reserved. Other brands and names mentioned in this document may be the trademarks of their respective owners. Please follow Arm’s trademark usage guidelines at http://www.arm.com/company/policies/trademarks.

Copyright © 2010–2018 Arm Limited (or its affiliates). All rights reserved.

Arm Limited. Company 02557590 registered in England.

110 Fulbourn Road, Cambridge, England CB1 9NJ.

LES-PRE-20349

Confidentiality Status

This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by Arm and the party that Arm delivered this document to.

Unrestricted Access is an Arm internal classification.

Product Status

The information in this document is Final, that is for a developed product.

Web Address

Non-ConfidentialPDF file icon PDF version100769_0608_00_en
Copyright © 2010–2018 Arm Limited or its affiliates. All rights reserved.