ARM DSTREAM DS-5 User manual

Copyright © 2010-2012 ARM. All rights reserved.
ARM DUI 0482K (ID120712)
ARM®DS-5
Version 5.13
Using ARM Streamline

ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. ii
ID120712 Non-Confidential
ARM DS-5
Using ARM Streamline
Copyright © 2010-2012 ARM. All rights reserved.
Release Information
The following changes have been made to this book.
Proprietary Notice
Words and logos marked with a ®or ™are registered trademarks or trademarks of ARM in the EU and other countries,
except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the
trademarks of their respective owners.
Neither the whole nor any part of the information contained in, or the product described in, this document may be
adapted or reproduced in any material form except with the prior written permission of the copyright holder.
The product described in this document is subject to continuous developments and improvements. All particulars of the
product and its use contained in this document are given by ARM in good faith. However, all warranties implied or
expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.
This document is intended only to assist the reader in the use of the product. ARM shall not be liable for any loss or
damage arising from the use of any information in this document, or any error or omission in such information, or any
incorrect use of the product.
Where the term ARM is used it means “ARM or any of its subsidiaries as appropriate”.
The Visual Annotation screenshots in the documentation feature the DOOM software from the PrBoom project and
contributors (http://www.crowproductions.de/repos/prboom).
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.
Product Status
The information in this document is final, that is for a developed product.
Web Address
http://www.arm.com
Change History
Date Issue Confidentiality Change
September 2010 A Non-Confidential ARM Streamline Performance Analyzer 1.0
January 2011 B Non-Confidential Version 5.4
April 2011 C Non-Confidential Version 5.5
July 2011‘ D Non-Confidential Version 5.6
September 2011 E Non-Confidential Version 5.7
November 2011 F Non-Confidential Version 5.8
February 2012 G Non-Confidential Version 5.9
May 2012 H Non-Confidential Version 5.10
July 2012 I Non-Confidential Version 5.11
October 2012 J Non-Confidential Version 5.12
December 2012 K Non-Confidential Version 5.13

ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. iii
ID120712 Non-Confidential
Contents
ARM DS-5 Using ARM Streamline
Chapter 1 Conventions and Feedback
Chapter 2 Setting Up Your Target
2.1 Setting up an ARM Linux target ............................................................................... 2-2
2.2 Setting up an Android target .................................................................................... 2-6
2.3 Recommended compiler options ........................................................................... 2-10
2.4 Mali setup for Streamline ....................................................................................... 2-11
Chapter 3 Using the Streamline Data View
3.1 The Streamline Data view ........................................................................................ 3-2
Chapter 4 Setting Capture Options
4.1 Opening the Capture Options dialog box ................................................................. 4-2
4.2 Capture options ....................................................................................................... 4-3
Chapter 5 Configuring Counters
5.1 Opening the Counter Configuration dialog box ........................................................ 5-2
5.2 Using the Counters Configuration dialog box .......................................................... 5-4
Chapter 6 The Timeline View
6.1 About the Timeline view ........................................................................................... 6-2
6.2 Timeline view charts .............................................................................................. 6-10
6.3 Customizing charts ................................................................................................ 6-13
6.4 Filtering data and other Timeline view controls ..................................................... 6-19
6.5 Timeline view toolbar options, contextual menu options, and keyboard shortcuts 6-22
6.6 Visual Annotation in the Timeline view .................................................................. 6-25

Contents
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. iv
ID120712 Non-Confidential
Chapter 7 The Table Views: Call Paths, Functions, and Stack
7.1 Table views toolbar options, contextual menu options and keyboard shortcuts ...... 7-2
7.2 Sorting data in the table reports ............................................................................... 7-5
7.3 Call Paths view column headers .............................................................................. 7-6
7.4 Functions view column headers .............................................................................. 7-7
7.5 Stack view column headers and the Maximum Stack Depth by Thread chart ......... 7-8
Chapter 8 The Code View
8.1 Code view basics ..................................................................................................... 8-2
8.2 Code view toolbar options and keyboard shortcuts ................................................. 8-5
Chapter 9 The Call Graph View
9.1 Call Graph view basics ............................................................................................ 9-2
9.2 Contextual menu options ......................................................................................... 9-5
9.3 Call Graph toolbar and keyboard shortcuts ............................................................. 9-6
Chapter 10 Annotate and the Log View
10.1 Customize reports using Annotate ......................................................................... 10-2
10.2 Adding bookmarks using Annotate ........................................................................ 10-5
10.3 Adding images to reports using Visual Annotate ................................................... 10-7
10.4 The Log view ......................................................................................................... 10-9
Chapter 11 Advanced Customizations
11.1 Capturing data on your target ................................................................................ 11-2
11.2 Creating custom performance counters ................................................................. 11-4
11.3 Using Stored Streamline Capture Data to create new Streamline Analysis Reports ......
11-9
11.4 Profiling the Linux kernel ..................................................................................... 11-10
Chapter 12 Using the Energy Probe
12.1 Energy Probe overview .......................................................................................... 12-2
12.2 Energy Probe requirements ................................................................................... 12-3
12.3 Energy Probe setup ............................................................................................... 12-5
12.4 Energy Probe operation ......................................................................................... 12-8
12.5 Support for National Instruments™ Multifunction Data Acquisition devices (NI DAQ) ...
12-10
Chapter 13 Using Streamline on the Command Line
13.1 Opening a Streamline-enabled command prompt or shell .................................... 13-2
13.2 The streamline command ...................................................................................... 13-3
Chapter 14 Troubleshooting
14.1 Target connection issues ....................................................................................... 14-2
14.2 Report issues ......................................................................................................... 14-3

ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 1-1
ID120712 Non-Confidential
Chapter 1
Conventions and Feedback
The following describes the typographical conventions and how to give feedback:
Typographical conventions
The following typographical conventions are used:
monospace
Denotes text that can be entered at the keyboard, such as commands,
file and program names, and source code.
monospace
Denotes a permitted abbreviation for a command or option. The
underlined text can be entered instead of the full command or option
name.
monospace italic
Denotes arguments to commands and functions where the argument is
to be replaced by a specific value.
monospace bold
Denotes language keywords when used outside example code.
italic Highlights important notes, introduces special terminology, denotes
internal cross-references, and citations.
bold Highlights interface elements, such as menu names. Also used for
emphasis in descriptive lists, where appropriate, and for ARM®
processor signal names.
Feedback on this product
If you have any comments and suggestions about this product, contact your
supplier and give:
• your name and company

Conventions and Feedback
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 1-2
ID120712 Non-Confidential
• the serial number of the product
• details of the release you are using
• details of the platform you are using, such as the hardware platform,
operating system type and version
• a small standalone sample of code that reproduces the problem
• a clear explanation of what you expected to happen, and what actually
happened
• the commands you used, including any command-line options
• sample output illustrating the problem
• the version string of the tools, including the version number and build
numbers.
Feedback on content
If you have comments on content then send an e-mail to
. Give:
• the title
• the number, ARM DUI 0482K
• if viewing online, the topic names to which your comments apply
• if viewing a PDF version of a document, the page numbers to which your
comments apply
• a concise explanation of your comments.
ARM also welcomes general suggestions for additions and improvements.
ARM periodically provides updates and corrections to its documentation on the ARM
Information Center, together with knowledge articles and Frequently Asked Questions (FAQs).
Other information
• ARM Information Center,
http://infocenter.arm.com/help/index.jsp
• ARM Technical Support Knowledge Articles,
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/index.html
• ARM Support and Maintenance,
http://www.arm.com/support/services/support-maintenance.php.
• ARM Glossary, http://infocenter.arm.com/help/topic/com.arm.doc.aeg0014-/index.html

ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-1
ID120712 Non-Confidential
Chapter 2
Setting Up Your Target
ARM Streamline Performance Analyzer is a system-wide visualizer and profiler for targets
running ARM Linux or Android native applications and libraries. Combining an ARM Linux
kernel driver, target daemon, and a graphical user interface, it transforms system trace and
sampling data into reports that present the data in both visual and statistical forms. Streamline
uses hardware performance counters with kernel metrics to provide an accurate representation
of system resources. Streamline supports Cortex™-A5, Cortex-A7, Cortex-A8, Cortex-A9,
Cortex-A15, ARM9™, ARM11™, and Qualcomm Snapdragon™Scorpion and Krait processors
running ARM Linux or Android.
The following topics describe how to set up your target to run Streamline:
•Setting up an ARM Linux target on page 2-2
•Setting up an Android target on page 2-6
•Recommended compiler options on page 2-10
•Mali setup for Streamline on page 2-11

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-2
ID120712 Non-Confidential
2.1 Setting up an ARM Linux target
These instructions are specific to targets running ARM Linux.
Note
You can locate all of the files provided by DS-5 by selecting Help → ARM Extras... from the
main menu.
2.1.1 Prerequisites
You must have the following tools on your host to build the Linux kernel and the gator driver:
• Linux kernel source code for the target platform. Streamline supports only Linux kernel
versions 2.6.32 and above.
• Either the cross compiler for building the Linux kernel or the ARM Linux GCC that
comes with DS-5.
Note
Streamline only supports hardware targets, not Real Time System Models (RTSMs). Streamline
can run on an RTSM, but an RTSM does not provide the cycle and timing information to make
the samples-generated data in the reports meaningful.
2.1.2 Load the gator daemon
The gator daemon and driver collect target metrics and then send them to your host machine.
To enable profiling, you must build and load the gator daemon on your target. Follow these steps
to build the gator daemon from the source archive:
1. Move to the directory that contains the gator daemon source:
cd .../gator/daemon-src
2. Enter the following commands to unzip the archive:
tar -xzf gator-daemon.tar.gz
Note
Make sure to untar this file in a directory in which you have write privileges.
3. Change directories to the newly created
gator-daemon
:
cd gator-daemon
4. Issue the make command to build
gatord
:
make
5. Move the newly created
gatord
to your host.
Note
You must build the gator daemon on your g++-enabled target or a Linux host. On a Linaro
Ubuntu target you must enter the following command to install g++:
apt-get install g++

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-3
ID120712 Non-Confidential
It is not possible to build the gator daemon on a Windows host.
2.1.3 Prepare and build your kernel
To prepare your kernel for use with Streamline, download one of the supported versions of the
Linux kernel, configure it to your target platform, customize it, and then build it. For instructions
on how to do this and the required kernel code, visit http://www.kernel.org
Add the following steps when compiling a kernel for use with Streamline:
• Enter the following command in your shell to export the cross compiler:
export CROSS_COMPILE=${CROSS_TOOLS}/bin/arm-linux-gnueabihf-
• To specify that this build is for an ARM architecture, enter the following command in your
shell:
export ARCH=arm
• Enter the following to build the configuration file specific to your platform:
make platform_defconfig
Replace platform_defconfig in the command with one of the configuration files located in
the
your_kernel/arch/arm/configs
directory appropriate for your platform or with a
configuration file provided by a vendor.
• To configure menus, enter the following in your shell:
make menuconfig
You must enable certain kernel configuration options to run Streamline. The location of
some of these options depends on your kernel version:
General Setup
Enable the Profiling Support option,
CONFIG_PROFILING
and the Kernel
performance event and counters option,
CONFIG_PERF_EVENTS
.
Kernel Hacking
Enable the Tracers option,
CONFIG_FTRACE
, and the Tracers → Trace process
context switches and events option,
CONFIG_ENABLE_DEFAULT_TRACERS
. You
must add the following options,
To populate the Mutex CPU Wait chart you must enable the Kernel
hacking → Mutex debugging: basic checks option,
CONFIG_DEBUG_MUTEXES
,
and.the Kernel hacking → Compile the kernel with debug info option,
CONFIG_DEBUG_KERNEL_INFO
. For more information on CPU wait time data and
charts in Streamline, see Timeline view charts on page 6-10.
Kernel Features
Enable the High Resolution Timer Support option,
CONFIG_HIGH_RES_TIMERS
and the Enable hardware performance counter support option,
CONFIG_HW_PERF_EVENTS
. Enable the Use local timer interrupts option,
CONFIG_LOCAL_TIMERS
, if you are using a Symmetric MultiProcessing (SMP)
target.
CPU Power Management
To enable the CPU Freq Timeline view chart,
gator
requires kernel version
2.6.38 or greater and that you define the CPU Frequency scaling → CPU
Frequency scaling option,
CONFIG_CPU_FREQ
.

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-4
ID120712 Non-Confidential
Note
The Trace context switches and events option,
CONFIG_ENABLE_DEFAULT_TRACERS
, is not be
visible if you have other Tracers configuration options enabled. Enabling other Tracers
configuration options is sufficient to turn on context switches and events and run
Streamline.
Note
The Trace process context switches and events option is not the only option that enables
tracing.
CONFIG_GENERIC_TRACER
or
CONFIG_TRACING
also work. The Trace process context
switches and events option may not be visible in menuconfig as an option if other trace
configurations are enabled. Enabling one of these other trace configurations works fine to
turn on tracing.
• Use the following command to build the image:
make -j5 uImage
You may verify all of your kernel options on a running system using
/proc/config.gz
, if it exists
on your system. For example, to confirm that
CONFIG_PROFILING
is enabled, enter:
zcat
/proc/config.gz | grep CONFIG_PROFILING
2.1.4 Build the gator module
To use Streamline with your ARM target, you may build the gator driver on a Linux host or build
it locally on your target.
DS-5 provides a
gator-driver.tar.gz
source archive. Assuming that you have unzipped the file
and that you have all of the required tools for building kernel modules, enter the following
command on your target to create the
gator.ko
module:
make -C kernel_build_dir M=`pwd` ARCH=arm CROSS_COMPILE=<...> modules
Note
You can build the gator module on your target. To do so, it is not necessary to include the ARCH
or CROSS_COMPILE parameters. Enter the following command on your target: make -C
kernel_build_dir M=`pwd`.
2.1.5 Run the gator daemon on your target
When all of the necessary files are in place, you can start the gator daemon.
To run
gatord
:
1. Copy
gatord
and
gator.ko
into the file system on the target.
2. To ensure
gatord
has execute permission, enter the following command:
chmod +x gatord
3. If
gatord
is in a different directory than
gator.ko
on the target, you must either:
• Insert the gator.ko module manually using the following command:
insmod gator.ko
• Include the path to
gator.ko
using the -m option of gatord. For example: ./gatord
-m /home/gator/gator.ko &.

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-5
ID120712 Non-Confidential
4. After making sure that you have root privileges, enter the following to execute the gator
daemon:
./gatord &
You can use the following options with
gatord
:
-c Sets the location of the
configuration.xml
file that defines the capture options.
Include the directory location and the file name. This option is useful when
directory containing
gatord
is not writable.
-e Defines the location of the
events.xml
file to use with
gatord
.
events.xml
defines
the counters that Streamline collects during the capture session. Include the
directory location and the file name.
-h Lists all of the available
gatord
command line options.
-m If
gator.ko
is located in a different directory than gatord, use the
-m
option to
define the location of
gator.ko
,
-p Sets the port number that
gatord
uses to communicate with the host.
-s Defines the location of the session.xml file. Include the directory location and the
file name. This option is most useful when performing a local capture. For more
information, see Capturing data on your target on page 11-2.
-o Useful when performing a local capture, use this option to define the location of
the apc directory.
-v Displays the version information for
gatord
.
Note
To unload the gator daemon, determine the process id of gatord using ps -d | grep gatord and
enter the kill command: kill process_id.
By default,
gatord
uses port 8080 for communication with the host, but you can adjust this by
launching
gatord
with the port number as a parameter and changing the Port option in the
Capture Options dialog box. For example:
./gatord -p 5050 &
To open the Capture Options dialog box, click Change capture options in the Streamline Data
view.
Note
gatord
requires the
libstdc++.so.6
library. This file is usually supplied with the Linux
distribution on your target. A copy of
libstdc++.so.6
is available in the DS-5 Linux example
distribution.
2.1.6 See also
Tasks
•Setting up an Android target on page 2-6.
Reference
•Target connection issues on page 14-2.

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-6
ID120712 Non-Confidential
2.2 Setting up an Android target
These instructions are specific to targets running Android.
Note
You can locate all of the files provided by DS-5 by selecting Help → ARM Extras... from the
main menu.
2.2.1 Prepare and build your kernel
You must enable certain kernel configuration options to run Streamline. In the kernel
configuration menu, use the arrow keys to navigate to the required submenu and press Enter.
Each submenu is listed with the action you must take within it.
General Setup
Enable the Profiling Support option,
CONFIG_PROFILING
and the Kernel
performance event and counters option,
CONFIG_PERF_EVENTS
.
Kernel Hacking
Enable the Tracers option,
CONFIG_FTRACE
, and the Tracers → Trace process
context switches and events option,
CONFIG_ENABLE_DEFAULT_TRACERS
. You must
add the following options,
To populate the Mutex CPU Wait chart you must enable the Kernel hacking →
Mutex debugging: basic checks option,
CONFIG_DEBUG_MUTEXES
, and.the Kernel
hacking → Compile the kernel with debug info option,
CONFIG_DEBUG_KERNEL_INFO
.
Kernel Features
Enable the High Resolution Timer Support option,
CONFIG_HIGH_RES_TIMERS
and
the Enable hardware performance counter support option,
CONFIG_HW_PERF_EVENTS
. Enable the Use local timer interrupts option,
CONFIG_LOCAL_TIMERS
, if you are using a Symmetric MultiProcessing (SMP) target.
CPU Power Management
To enable the CPU Freq Timeline view chart,
gator
requires kernel version 2.6.38
or greater and that you define the CPU Frequency scaling → CPU Frequency
scaling option,
CONFIG_CPU_FREQ
.
Note
The Trace context switches and events option,
CONFIG_ENABLE_DEFAULT_TRACERS
, is not be
visible if you have other Tracers configuration options enabled. Enabling other Tracers
configuration options is sufficient to turn on context switches and events and run Streamline.
Note
The Trace process context switches and events option is not the only option that enables
tracing.
CONFIG_GENERIC_TRACER
or
CONFIG_TRACING
also work. The Trace process context
switches and events option may not be visible in menuconfig as an option if other trace
configurations are enabled. Enabling one of these other trace configurations works fine to turn
on tracing.
If these options are not set correctly, you must change them and rebuild your kernel. If they are
set correctly, you are ready to build and install the gator driver.

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-7
ID120712 Non-Confidential
2.2.2 Build the gator daemon
The gator daemon and driver collect target metrics and then send them to your host machine.
Note
To build the gator daemon, you must install the Android NDK. For more information on how to
do this, visit the Android NDK site, http://developer.android.com/sdk/ndk.
To enable profiling, you must build and load the gator daemon on your target. Follow these steps
to build the gator daemon from the source archive:
1. Move to the directory that contains the gator daemon source:
cd .../gator/daemon-src
2. Enter the following commands to unzip the archive:
tar -xzf gator-daemon.tar.gz
Note
Make sure to untar this file in a directory in which you have write privileges.
3. Issue the following command:
mv gator-daemon jni
4. Issue the following command to build
gatord
:
ndk-build
Note
If ndk is not on your path, instead issue the following command:
execute /path/to/ndk/ndk-build.
5. The newly created gatord is located in
build_directory/libs/armeabi
Note
You must build the gator daemon on your gcc-enabled target or a Linux host. It is not possible
to build the gator daemon on a Windows host.
2.2.3 Build the gator module
To use Streamline with your Android target, you must build the gator driver on a Linux host and
place it in the same directory as the gator daemon,
gatord
, on the target file system. Transfer the
gator driver module sources from your host to the target. They are located on your host here:
.../gator/driver-src/gator-driver.tar.gz
Assuming that you have unzipped the file and that you have all of the required tools for building
kernel modules, enter the following command on your target to create the
gator.ko
module:
make -C kernel_build_dir M=`pwd` ARCH=arm CROSS_COMPILE=<...> modules
Note
To enable kernel stack unwinding you must remove the comment hashtag from the following
line in the makefile of the gator module:

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-8
ID120712 Non-Confidential
# EXTRA_CFLAGS +=-DGATOR_KERNEL_STACK_UNWINDING
Note
You can build the gator module on your target. To do so, it is not necessary to include the ARCH
or CROSS_COMPILE parameters. Enter the following command on your target: make -C
kernel_build_dir M=`pwd`.
2.2.4 Connect to the target
Streamline supports connection to your target using ethernet. Using the Android Debug Bridge
(ADB) utility that is part of the Android SDK, it is possible to forward a TCP port from the target
to your localhost over a USB connection. ADB can also be configured to work over ethernet.
For more information about the Android SDK and ADB setup, see the Android website.
When ADB is set up, forward the Streamline port to your localhost using the following
command:
adb forward tcp:8080 tcp:8080
2.2.5 Run the gator daemon on your target
When all of the necessary files are in place, you can start the gator daemon.
To run
gatord
:
1. Copy
gatord
and
gator.ko
into the file system on the target. For example, adb push
gatord_location target_location.
2. To ensure
gatord
has execute permission, enter the following command on the target or
from your host using adb shell:
chmod +x gatord
3. If
gatord
is in a different directory than
gator.ko
on the target, you must either:
• Insert the gator.ko module manually using the following command on the target:
insmod gator.ko
• Include the path to
gator.ko
using the -m option of gatord. For example: ./gatord
-m /home/gator/gator.ko &.
4. After making sure that you have root privileges, enter the following to execute the gator
daemon:
./gatord &
You can use the following options with
gatord
:
-c Sets the location of the
configuration.xml
file that defines the capture options.
Include the directory location and the file name. This option is useful when
directory containing
gatord
is not writable.
-e Defines the location of the
events.xml
file to use with
gatord
.
events.xml
defines
the counters that Streamline collects during the capture session. Include the
directory location and the file name.
-h Lists all of the available
gatord
command line options.

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-9
ID120712 Non-Confidential
-m If
gator.ko
is located in a different directory than gatord, use the
-m
option to
define the location of
gator.ko
.
-p Sets the port number that
gatord
uses to communicate with the host.
-s Defines the location of the session.xml file. Include the directory location and the
file name. This option is most useful when performing a local capture. For more
information, see Capturing data on your target on page 11-2.
-o Useful when performing a local capture, use this option to define the location of
the apc directory.
-v Displays the version information for
gatord
.
Note
To unload the gator daemon, determine the process id of gatord using ps -d | grep gatord and
enter the kill command: kill process_id.
By default,
gatord
uses port 8080 for communication with the host, but you can adjust this by
launching
gatord
with the port number as a parameter and changing the Port option in the
Capture Options dialog box. For example:
./gatord 5050 &
To open the Capture Options dialog box, click Change capture options in the Streamline Data
view.
2.2.6 Set capture options to support your Android target
In the Capture Options dialog box, opened in the Streamline Data view in Eclipse for DS-5 and
enter the ethernet address. If you use the ADB to forward the port, enter
Localhost
in the
Address field.
Note
With Android, make sure to add the shared libraries you are interested in profiling to the session
using the Program Images section of the Capture Options dialog box.
2.2.7 See also
Tasks
•Opening the Capture Options dialog box on page 4-2
•Setting up an ARM Linux target on page 2-2.
Reference
•Target connection issues on page 14-2
•Capture options on page 4-3
•The Streamline Data view on page 3-2.

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-10
ID120712 Non-Confidential
2.3 Recommended compiler options
When building executables for profiling using Streamline, it is best practice to use the following
compiler options:
-g
Turns on the debug symbols necessary for quality Analysis Reports. Compile
using this option to create the elf files for your host. use the Capture options
dialog box to point Streamline to these elf files. For more information, see
Capture options on page 4-3.
-fno-inline
Disables inlining. This compiler setting substantially improves the call path
quality.
-fno-omit-frame-pointer
Compiles your EABI images and libraries with frame pointers. This enables
Streamline to record the call stack with each sample taken.
-marm
This option is required if you compile your code with the
--with-mode=thumb
option enabled. Using the
--with-mode=thumb
option without
-marm
breaks call
stack unwinding in Streamline.
Note
Streamline does not support Thumb or output from
armcc
.
2.3.1 See also
Tasks
•Setting up an Android target on page 2-6.
Reference
•Target connection issues on page 14-2
•Capture options on page 4-3.

Setting Up Your Target
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 2-11
ID120712 Non-Confidential
2.4 Mali setup for Streamline
Streamline enables you to gather GPU-specific profiling data on a Mali-400 based device,
adding a significant amount of data about the graphical performance of your target to the
Analysis Reports.
2.4.1 Requirements
• A Mali-400 or Mali-T6xx based device.
• A sufficiently recent version of the
mali.ko
driver. The driver must be capable of
generating the tracepoints needed by the
gator.ko
driver. Consult your supplier to see if
this version of the driver is available for your device. For more information, see the Mali
developer site, http://www.malideveloper.com
2.4.2 Special instructions for building the gator driver
Follow normal installation and setup instructions for Streamline and the gator daemon. To build
the gator driver,
gator.ko
with Mali support, add a build switch and an include to the make
command. The build switch enables Mali support, and the include path allows the compiler to
locate the
mali_linux_trace.h
header file containing the declaration of the Linux tracepoints
necessary for Mali support. To build the gator module for Mali, follow these steps:
1. Add the following options to your
gator.ko
make
command:
KCFLAGS="-IMali_driver_source_location/src/devicedrv/mali"
GATOR_WITH_MALI_SUPPORT=MALI_Device_Number
Replace
Device_Number
in the command with either
400
or
T6xx
, depending on your Mali
device type.
Note
If you are using a Mali-T6xx device you must add one additional option to your gator.ko
make command:
DDK_DIR=path_to_dev_driver_directory
.
2. Insert the gator module as normal:
insmod gator.ko
3. Verify that you built the module successfully:
ls -l /dev/gator/events/ARM_Mali_Device_Type
Replace
Mali_Device_Type
in the command with either
Mali-400*
or
Mali-T6xx*
. This
command should produce a list of counters.
If you have successfully built the gator module with Mali support, you can run a capture session
on a Mali target. Follow the normal instructions for setting capture options and a triggering a
capture session. For more information on how to do this, see The Streamline Data view on
page 3-2.
2.4.3 See also
Tasks
•Opening the Capture Options dialog box on page 4-2
•Setting up an ARM Linux target on page 2-2.
Reference
•Target connection issues on page 14-2

ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 3-1
ID120712 Non-Confidential
Chapter 3
Using the Streamline Data View
The Streamline Data view enables you to set target connection settings, start and stop capture
sessions, and create new Streamline Analysis Reports from stored capture sessions.
The following topic describes how to open and use the Streamline Data view:
•The Streamline Data view on page 3-2

Using the Streamline Data View
ARM DUI 0482K Copyright © 2010-2012 ARM. All rights reserved. 3-2
ID120712 Non-Confidential
3.1 The Streamline Data view
Much of the functionality of ARM Streamline requires the Streamline Data view. To open the
Streamline Data view:
1. Select Window → Show View → Other...
2. Expand the ARM Streamline group.
3. Select Streamline Data.
Figure 3-1 The Streamline Data view
3.1.1 Streamline Data view toolbar options
The following controls are available in the toolbar of the Streamline Data view:
Show Help Opens a list of help topics for the Streamline Data view in a Help view.
Delete Deletes a stored Capture Data or Streamline Analysis report from the file system.
Refresh Refreshes the contents of the of the Streamline Data view. If you have added
Streamline files to any of your defined locations outside of Eclipse, use Refresh
to sync this view.
Address Enter the IP address of your target here. This can also be defined in the Capture
Options dialog box.
Edit Locations...
Opens the Analysis Data Locations dialog box that enables you define the folders
on your file system that contain Streamline data.
Use Compact Data View
Activates the Compact Data View. When active, the Streamline Data view lists
only the titles of Captures and Analysis Reports next to a smaller icon so they take
up much less vertical space. Press this button again to return to the standard view.
Other manuals for DSTREAM DS-5
2
Table of contents
Other ARM Computer Hardware manuals

ARM
ARM Cortex-A35 Product manual

ARM
ARM Versatile/IT1 User manual

ARM
ARM Cortex-M3 DesignStart Product manual

ARM
ARM DSTREAM User instructions

ARM
ARM ARM946E-S Product manual

ARM
ARM PrimeCelL PL320 Product manual

ARM
ARM ARM9TDMI Product manual

ARM
ARM ARM7TDMI Operating and maintenance manual

ARM
ARM Cortex-M0 Product manual

ARM
ARM ARM7TDMI Product manual

ARM
ARM DSTREAM-HT User manual

ARM
ARM Cordio BT4 Radio IP User manual

ARM
ARM ARM926EJ-S Product manual

ARM
ARM ETB11 Product manual

ARM
ARM DSTREAM-HT User manual

ARM
ARM ARM1176JZF-S Product manual

ARM
ARM DSTREAM-PT User manual

ARM
ARM MPS3 User manual

ARM
ARM DSTREAM DS-5 User manual

ARM
ARM ARM966E-S Use and care manual