目录
DS-5 Streamline
最近在使用DS5分析一些CPU loading的相关事情,整理一下DS5这个tool的用法,以及使用过程中遇到的一些问题及处理办法
1. Introduction
- DS-5 (即ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。ARM DS-5 提供具有跟踪、系统范围性能分析器、实时系统模拟器和编译器的应用程序和内核空间调试器。这些功能包括在定制、功能强大且用户友好的基于 Eclipse 的 IDE 中。借助于该工具套件,可以很轻松地为 ARM 支持的系统开发和优化基于 Linux 的系统,缩短开发和测试周期,并且可帮助工程师创建资源利用效率高的软件。即DS-5 是 ARM 开发的软体套件, 提供编译、链结等工具, 并提供性能调适工具 Streamline
- Streamline:用于分析报告的基于时间的筛选,用于时间测量和快速热点分析的可伸缩、跨部分的标记,独立的共享库分析,以及支持 CPU 热插拔。可以用來监视 ARM CPU 与Mali GPU 负载
2. DS-5 下载安装与license设定
2.1 DS-5的下载路径
https://developer.arm.com/products/software-development-tools/ds-5-development-studio/downloads
- 下载完成,解压,点击 setup.exe安装,选择好对应安装路径后,其他都可选择yes,安装好后,重启电脑。
2.2 license设定
Open Eclipse --> Help --> ARM License Manager --> Add License
--> Use a license file, license server...
--> Use an existing license file or license server address --> License Server
-->
Host: alisvr03
Port: 8224 // 这两个是得购买搭建服务器才可以的,个人使用的,只能使用其他途径了,或者试用30天 @_@
(另一种是选择Licence File,这个可网上可以搜索到patcher.exe的tool即可生成dat档)
-->
Select the toolkit that you intend to use --> 选择 DS-5 Ultimate Edition
3. Rebuild kernel and kernel modules
- 需要打开相关设定,才可以让系统可以执行DS-5的相关操作,所以,先要将kernel打开一些config
可以参考下面的kernel config设定
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0482j/BABECIDJ.html
以DS-5 5.28.1版本为例
进入以上链接后,在左下框中,依次点击,即可入kerenl的config设定
ARM软件开发工具
-> ARM DS-5
--> Version 5.28
---> ARM Streamline
----> Arm Streamline Performance Analyzer User Guide
-----> Target Setup
------> Required kernel configuration menu options
- 这时想查看一下各核CPU在各个时间点的loading情况,所以打开的config如下所示:
kernel 使用make menuconfig执行后出现界面,再进行如下操作
General Setup
-> [*] Profiling Support
-> Kernel Performance Events And Counters
--> [*] Kernel performance events and counters
Timers subsystem
-> [*] High Resolution Timer Support
Kernel Features
-> [*] Enable hardware performance counter support for perf events (may not found in menuconfig)
Kernel Hacking
-> [*] Tracers --> [*] Trace process context switches and events (may not found in menuconfig)
- 替换kernel & kernel modules
1 替换 kernel 中build出来的arch/arm/boot/zImage(有些平台是Image)
2 替换全部 kernel modules
另一个简化版本,即只替换板子上,执行lsmod中可以看到的modules即可,也可以把lsmod看到的,但你不用到的功能又不会影响系统的module去掉,最后,直接insmod那些lsmod看到的必要部分即可
4. Build gator driver and get gator daemon
- 如果DS-5要在板子上执行起来,还得要一个gator.ko跟gatord一个bin的执行档才可以
- gator.ko如何得到
可以在DS-5的安装路径中去找到gator的source code,然后放到kernel中去build即可。
5. DS-5 Live Preview
- 1)在板子上,将gator.ko跟gatord放到/data下面,权限设置为755,chmod 755 gator*
- 2)分别执行以下两个命令
# insmod /data/gator.ko
# /data/gatord &
- 3)执行以上第二步后,,同时记录一下板子上的IP,此时板子上的操作就已经完成
- 4)在PC机上,打开Streamline这个软件,输入刚刚记录的板子IP,再点击”眼睛按钮”,选择你连接的设备IP,最后点击红色按钮,即可开始录制板子上CPU的情况了
6. DS-5 Local Capture
在以上第5点“DS-5 Live Preview”时,已经说到了使用联网的方式,获取到板子上的CPU情况,但有时板子是在一个封闭的环境中,比如在一个屏蔽箱中时,这时,我们无法用联网的方式去获取板子的CPU情况,这时要怎么办呢?
DS-5已经有考虑到这种情况了,可以让用户在板子上直接使用命令的方式,把录制的档案保存到板子上,再copy出来用Streamline查看即可。
只要在板子上执行以下两步即可得到CPU的录制情况
# insmod /data/gator.ko
# /data/gatord -s /data/session.xml -c /data/configuration.xml -o /data/test_result &
以上命令中的session.xml跟configuration.xml要如何获取到呢?
这个就得参考第5点“DS-5 Live Preview”了,当我们使用联网方式时,会在保存的录制档案中,自动生成session.xml与configuration.xml,当打开生成的目录时,可以看到有session.xml跟chart_configuration.xml.gz, 这时把chart_configuration.xml.gz解压就可以得到configuration.xml了。
最后,只要把这两个xml文件cp到板子上的/data目录下,权限为777即可执行上面的命令录制档案了。
(PS:最好是用你所用版本的两个xml,不然,如果你用从其他版本copy过来的xml,那到时录制的档案,在你的PC机上是打不开的,因为DS-5的版本不一样)
其中的session.xml中的 duration=”60”参数,代表要录制的时间长短,可以随自己要录制的时间设定
7. 使用DS-5遇到的问题及解法办法
- 当本地录制完成后,在板子的/data下面生成一个test_result.apc文档,copy出来后,如何用Streamline打开?
1)先把test_result.apc压缩成zip格式,即为test_result.apc.zip
2)使用Streamline把test_result.apc.zip import进去即可,再右击“test_result”档案,点击Analyze即可查看CPU的情况
(ps: 以上test_result.apc,一定要以.apc结尾,再打包成.apc.zip格式的包,不然,Streamline会import不进去的,切记切记) - 在Streamline查看对应code的办法,当import进入Streamline界面后,在左边栏中,选中要分析的档案,右击,选择“Analyze”,会弹出如下的对话框,然后,点击“Add ElF image”,这样就可以选择对应文件的symbol进行解析,最后,在档案中的”Call Paths”、“Functions”、“Code”中可以直接查看到source code中的哪个函数,哪一行调用。