系统与设计
的意见

从硬件中提取最大性能

如何识别和消除软件瓶颈。

受欢迎程度

手臂DS-5简化性能分析器提供了系统性能指标,软件跟踪和统计分析来帮助工程师获得最大的性能从硬件和软件的重要瓶颈。

覆盆子π3是一种最简单的系统学习简化,和一个四核Cortex-A53这也使一个好的学习Linux开发的目标。许多简化文章手臂社区涉及复杂的序列闪存设备引导装载器,补丁和保存Linux内核,使用实用程序包图片,根Android设备,禁用安全设置,甚至重建整个Android AOSP从头开始。有时,这些都需要得到最简化,但覆盆子π3,注重教育,提供了一个很好的平台去学习如何设置一个目标系统和学习如何使用简化所有功能。唯一的缺点是当前用户的空间Raspbian是AArch32而不是AArch64。不过,让我们看看如何使用简化的π。

目标做准备

DS-5简化依靠手臂短吻鳄Linux驱动程序和短吻鳄守护进程应用程序。

为简化有三个关键的问题需要考虑:

  • Linux内核的配置
  • 编译短吻鳄司机
  • 短吻鳄守护程序编译应用程序

前两个是紧密耦合自短吻鳄司机需要编译与运行的内核源代码树,和内核源需要提供源水平运行的内核的性能信息。

内核配置包括几个方面:

  • 内核配置中启用分析特性
  • 使PMU计数器可见通过PMU绑定设备树
  • 编译内核启用了调试源代码可见性

短吻鳄司机可以静态编译到Linux内核或插入动态加载的模块。任何一个工作,但可加载的模块通常是首选。建筑司机到内核优先只有当安全特性或别的块可加载内核模块的使用。为达到最佳效果,短吻鳄守护进程必须作为根用户运行在目标系统上。

简化可以没有内核模块和工作有各种各样的其他配置和减少使用它的功能。甚至有一个Android短吻鳄. apk,可以安装和使用。更多信息请参考简化开发人员。这里的目标是不采取任何捷径,把所有的工作都易于使用覆盆子π3板。

有更多的文档目标设置简化,但这篇文章是为了避免浏览所有的通用文档和关注使用简化的覆盆子π3。

覆盆子π3配置
的起点是最新版本的Raspbian覆盆子π。按照说明来创建一个SD卡使用任何路径是最简单的。我通常使用Linux和使用dd img文件复制到SD卡,但还有许多其他的选择获得图像一个SD卡和如何做很多很好的信息。16 GB或较大的SD卡是必需的,否则你会耗尽空间在构建内核。

第一次启动系统。根据需要连接无线或有线网络。默认的用户名是π和密码是覆盆子。我经常更改密码以确保没有其他人使用默认密码登录。使用sudo自动为用户启用π。我也支持ssh所以我可以远程连接。这是使用首选项- >覆盆子π配置,然后单击选项卡的接口。

一旦确认工作系统内核可以下载,配置和编译。让事情尽可能简单我建议编译内核的覆盆子π3本身。有点慢,但是容易做交叉编译。

指令在树莓π文档。我建议增加ncurses包安装menuconfig可用。

安装所需的额外工具。我发现git已经安装和flex和bison需要构建Linux性能的应用程序。

然后导航到内核黑客和编译器选项- >编译时检查。到这里的道路是沿着截图的打击。选择“编译的内核调试信息”,点击启用的空间。然后选择退出底部3倍是的保存一个新的内核. config文件。

内核编译需要一些时间,但要有耐心,并且它将完成。我没有时间,但它可能是几个小时。

好消息是简化所需的所有配置已经启用了所以不需要更改内核配置启用调试。

重新启动系统的新内核使用dmesg命令确认新内核正在运行。

1

看看Linux版本的输出线,确保它匹配内核编译时:

Linux性能
Linux性能可以用来确保所有的性能和配置功能被启用。它是内核源代码树的一部分,但不是自动编译。构建性能可执行。从linux /目录:

输出应该包含许多的事件的信息用于PMU的计数器。寻找事件(内核PMU事件)确认CPU计数器可以精简。

接下来,设置短吻鳄司机和守护进程使连接能够简化。

短吻鳄司机和守护进程
有几个地方的短吻鳄软件。下面的说明使用github

代码也可以获得DS-5安装。路径在DS-5 DS5_HOME美元/ sw /简化/短吻鳄目录。我发现了预编译gatord DS5_HOME美元/ sw /简化/ bin /胳膊/ gatord覆盆子π3作品很好,但是很高兴学习如何下载并编译它。

README文件的短吻鳄有许多关于内核配置的信息。随时学习它并确认覆盆子π3内核配置启用了这些东西。不幸的是,内核变化迅速,所有内核版本的选择是不一样的所以有时候细节是不一样的。

下载软件:

编译内核模块。- c应该linux源代码的路径已经用于构建内核。这保证了模块实际运行的编译内核。

这将创建短吻鳄。ko插入内核。下一个编译短吻鳄守护进程。

运行短吻鳄很简单,将内核模块插入到内核和短吻鳄守护进程开始运行。

使用lsmod命令显示的模块列表并确认短吻鳄现已上市。

现在,是时候来连接简化。从Windows或Linux机器开始简化GUI使用菜单或从命令行运行简化。

单击目击等,浏览一个目标。有时,覆盆子π可能会自动显示出来。如果没有,点击设置目标。无论哪种方式,输入的IP地址覆盆子π3π的用户名和密码。

如果您输入的IP地址π但简化仍然无法找到它,确保流线和覆盆子π3在同一网络。只有最后的主机和目标机的IP地址应该是不同的。

弹出安装按钮被按下后显示是带有欺骗性的,因为这意味着安装gatord在目标系统上。我们不需要这个,因为它已经运行,这样你就可以点击没有以避免这种情况。

现在选择目标。

开始一个捕获会话,运行一个程序,捕获会话结束。这将确认数据收集工作。红色圆圈开始捕捉会话和红色停止图标左上角的时间将它结束。

没有任何源代码和软件映像时,调用路径,功能,和代码标签不要提供太多的信息,只是过程名称和过程ID值有很多空白的屏幕和“未知代码”消息。为了改善这种软件需要简化图像和来源。

内核源代码信息
提供内核软件形象和源代码精简的最简单方法是复制/home/pi/linux目录从Raspberyπ3主机运行简化。说明将高度依赖如果主机Linux或Windows。最简单的方法复制从树莓π3是scp。在Linux上使用scp或scp等Windows客户机腻子(pscp.exe)或有WinSCP

Linux主机,覆盆子π第一焦油源:

在Linux主机,使用的IP地址覆盆子π3 - scp。更换的与正确的IP地址覆盆子π。

一旦源代码和编译对象是在主机上,他们可以添加,点击齿轮图标,捕捉和分析选项。

进入vmlinux从Linux源代码树的顶部点击添加精灵图像复制到主机…在对话框的底部部分。

使源代码分析在其他应用程序编译它们覆盆子π3然后将π的编译源代码树复制到主机并添加到图像列表在这同一区域。

一个示例应用程序
做一项测试简化,LMbench可以使用应用程序。他们很容易下载和构建与g简化能够地图应用程序的源代码。

这将生成可执行文件在bin / armv7l-linux-gnu目录中。

顶部和运行测试。

现在使简化捕获,运行测试,并阻止它看到结果。确保复制lmbench - 3.0 - a9的目录树莓π3的主机启用源分析应用程序的水平。可以以同样的方式使用scp Linux内核源代码复制。

精简的代码选项卡将无法找到源代码,因为路径目标比在主机的路径不同。使用点击这里来定位并导航到该文件被引用来源。如果窗口没有信息丢失的源代码试图在时间轴的底部单击一个进程选项卡的源代码可用。

插入标记
标记可以插入任何应用程序的源代码,让它更容易跟踪进展简化时间表。一切都需要的是短吻鳄的注释/目录软件。插入一个标记需要几个步骤:

  • 包括streamline_annotate。h短吻鳄/注释目录的应用程序源代码
  • 包括streamline_annote。编译的c应用程序
  • 调用注释设置函数来初始化界面
  • 调用一个注释标记函数来创建一个标记

添加一个标记bw_mem LMbench源文件。c添加包含文件的源文件:

# include“streamline_annotate.h”

在安装期间,在main()函数在运行测试之前,添加:

ANNOTATE_SETUP;

最后,把标记需要跟踪测试在简化的时间表。


确保为编译器添加include路径找到streamline_annotate。h和添加streamline_annotate。c源文件编译的列表。

条目也会出现在日志选项卡并标记在时间轴上。

标记还可以在Java应用程序中插入和Linux内核。参考短吻鳄/注释/ readme。txt的更多信息。

结论
这涵盖了所有的设置和运行的步骤简化内核和应用程序跟踪和全系统分析在手臂的目标系统。覆盆子π3是最好的系统学习,因为它很容易获得root访问权限,改变配置,从头构建软件。也有很多资源和文档了解覆盆子π3和Raspbian操作系统。学习这个流的覆盆子π3的时候更容易应用简化Android的移动设备上或其他目标系统。



留下一个回复


(注意:这个名字会显示公开)

Baidu