DS-5 Streamline

目录

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中的哪个函数,哪一行调用。
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/gh201030460222/article/details/80544072
DS