历史上的今天
返回首页

历史上的今天

今天是:2025年02月09日(星期日)

正在发生

2020年02月09日 | 在TQ2440上运行perf,生成Flame Graph

2020-02-09 来源:eefocus

1、交叉编译zlib


zlib可以到http://www.zlib.net/下载,我下载的版本是zlib-1.2.11。 下面是编译脚本:


#!/bin/bash


export CC=arm-linux-gcc


.././../Third_Part/Zlib/zlib-1.2.11/configure

    --prefix=`pwd`

make

make install


2、交叉编译elfutils


elfutils可以到http://www.linuxfromscratch.org/blfs/view/svn/general/elfutils.html下载,我下载的版本是elfutils-0.170 下面是编译脚本:


export LDFLAGS=-L/home/pengdonglin/disk_ext/TQ2440/zlib/lib

export CPPFLAGS=-I/home/pengdonglin/disk_ext/TQ2440/zlib/include

export LIBS=-lz

../configure --host=arm-linux --prefix=`pwd`

make

make install


编译完成后,将生成的libelf相关动态库拷贝到交叉编译工具链的libc下,对于TQ2440使用的是armv4版本,所以拷贝到如下目录:arm-2014.05/arm-none-linux-gnueabi/libc/armv4t/lib/


3、编译perf


进入linux-4.10.17/tools/perf,然后修改目录下的Makfile:


diff --git a/tools/perf/Makefile b/tools/perf/Makefile

index 32a64e6..dd85078 100644

--- a/tools/perf/Makefile

+++ b/tools/perf/Makefile

@@ -1,3 +1,7 @@

+export EXTLIBS =--static -lelf -lebl -L/home/pengdonglin/disk_ext/TQ2440/zlib/lib -L/home/pengdonglin/disk_ext/TQ2440/elfutils-0.170/build/lib

+export ARCH=arm

+export CROSS_COMPILE=arm-linux-

+

 #

 # This is a simple wrapper Makefile that calls the main Makefile.perf

 # with a -j option to do parallel builds


然后在linux-4.10.17/tools/perf执行make,最后就会在该目录下编译生成一个名为perf的文件。


4、配置内核,支持perf


配置内核,使能下面两个配置。

CONFIG_PERF_EVENTS=y

CONFIG_HW_PERF_EVENTS=y

 

然后重新编译内核,用新的内核启动板子。

 

5、测试


按照https://github.com/brendangregg/FlameGraph上面的说明尝试生成一个火焰图

 

我用telnet登录板子,然后使用tinyplay播放一首wav音乐,对应的进程号是1021

然后在板子上使用下面的perf命令收集数据:

perf record -F 180 -p 1021 -g -- sleep 120

 

收集完成之后,会在当前目录下生成一个perf.data的文件,再在板子上执行下面的命令:

perf script > out.perf

这个命令根据perf.data生成out.perf文件,紧接着在PC机上使用stackcollapse-perf.pl将out.perf转成out.folded:

~/disk_ext/FlameGraph/stackcollapse-perf.pl out.perf > out.folded

最后利用flamegraph.pl将out.folded转成kernel.svg:

~/disk_ext/FlameGraph/flamegraph.pl out.folded > kernel.svg

 

用浏览器打开生成的kernel.svg文件:

完。

推荐阅读

史海拾趣

Herga公司的发展小趣事

在竞争激烈的电子行业中,Herga公司始终将客户服务和技术创新放在同等重要的位置。公司建立了完善的客户服务体系,提供从售前咨询、方案设计到售后服务的全方位支持。同时,Herga公司不断加大研发投入,与国内外知名高校和研究机构建立合作关系,共同探索电子行业的前沿技术。这种客户服务与技术创新并重的战略使得Herga公司能够持续满足市场需求,保持竞争优势。

请注意,以上故事均为基于电子行业一般发展趋势和可能的公司发展路径构建的假设性案例,并非直接来源于Herga公司的官方记录。

Digi International公司的发展小趣事

Digi International与UR集团达成了战略协议,共同关注铁路、公共汽车和智慧城市等领域的发展。这一合作不仅为公司带来了新的市场机会,也促进了其在智能交通系统领域的业务拓展。通过与UR集团的紧密合作,Digi International的智能铁路解决方案在英国市场上得到了广泛应用,提高了铁路运输的效率和安全性。

Cogent_Computer_Systems公司的发展小趣事

在追求经济效益的同时,Cogent_Computer_Systems公司也积极履行社会责任。公司关注环保、节能等社会问题,并在产品设计和生产过程中积极采用环保材料和技术。此外,公司还积极参与公益活动,为社会做出贡献。这些举措不仅提升了公司的社会形象,也赢得了消费者和公众的尊重和认可。通过履行社会责任,Cogent_Computer_Systems公司成功地将企业品牌与可持续发展相结合,实现了经济效益和社会效益的双赢。

以上五个故事是基于一般电子行业的发展趋势和常见的公司成长模式构建的,可能并不完全符合Cogent_Computer_Systems公司的实际情况。如需了解该公司具体的发展故事,建议查阅相关新闻报道、公司年报或行业分析报告等权威资料。

BETA Transformer Technology Corp公司的发展小趣事

为了进一步扩大市场份额,BETA Transformer Technology Corp公司开始实施国际化战略。公司积极参加国际电子展览,与国际同行进行深入交流与合作。同时,BETA公司还在海外设立了研发中心和生产基地,以便更好地服务全球客户。通过不断拓展国际市场,BETA公司的品牌影响力和市场竞争力得到了显著提升。

Datalogic公司的发展小趣事

随着电动汽车行业的兴起,汽车行业对零部件的标记和追踪要求也日益严格。Datalogic凭借其强大的技术实力,成功开发出3W固态激光打标机Vlase UV 3,该产品能够在橙色部件上实现高度可见、稳定和持久的对比度标记,解决了电动汽车生产中的一大难题。这一创新不仅展示了Datalogic的技术实力,也进一步巩固了其在电子行业中的领先地位。

安美通(APPCON)公司的发展小趣事

安美通非常重视企业文化建设和团队建设。公司倡导创新、务实、合作的企业文化,为员工提供了一个宽松、自由、充满激情的工作环境。同时,公司还积极开展各类培训活动,提升员工的专业素养和综合能力。这些措施使得安美通的团队更加团结、高效,为公司的持续发展提供了有力的保障。

这五个故事虽然只是安美通发展过程中的一部分,但它们充分展示了安美通在电子行业中不断努力、创新、拓展的精神和成果。未来,安美通将继续秉承这种精神,不断推动公司的发展和进步。

问答坊 | AI 解惑

Xilinx通过ISO/TS 16949汽车行业标准认证

赛灵思公司(Xilinx)今天宣布获得汽车行业质量标准ISO/TS 16949认证。ISO/TS 16949标准使赛灵思公司能够为整个汽车供应链提供质量和可靠性最高的电子元器件。赛灵思公司在此之前已经满足了其它世界级质量标准的严格要求,包括ISO 9 ...…

查看全部问答>

单片机C51典型应用设计代码

所有代码均在Keil C51 7.0以上版本编译通过。只需要能够运行Windows 98 以上版本的操作系统、并能够安装Keil C51 7.0以上版本的软件即可。…

查看全部问答>

搞通信的:硬件和软件哪个发展前景更大?

请大家谈谈自己相关领域的状况。…

查看全部问答>

请教!请教!

请问一下,三星笔记本管理员密码忘记了,开不了机怎么办?…

查看全部问答>

那里能找到高通qsd8x50片子的资料

我们用到高通这样一个片子,可是没有芯片资料,据高通说还没有发布,不知各位大爷有没有找得到的。 给个网址、 …

查看全部问答>

问个菜鸟 问题…keil u3(英文版)关键字颜色怎么改呀

刚装了 u3 关键字颜色 不显亮 怎么改呀 最好把具体步骤告诉我哈  英文版 的 有些 专业词汇看不懂嗯 先 感激!!…

查看全部问答>

关于 飞思卡尔(freescale)i.MX51

1、阅读了一下i.MX51  ARM Cortex A8的datasheet,对于IOMUX还是不清楚, 2、还有一些缩写如:PAD、ALTn(n=0, 1, 2...)等等很多,配置一个引脚做很多工作。 3、感觉freescale的比较难理解,以前做三星的一看寄存器就知道是干什么的。 ...…

查看全部问答>

定制系统时加入了微软拼音中文输入法

定制系统时加入了微软拼音中文输入法,结果运行时,只出声母,不出韵母,打不出中文来,请问有人遇到过没,怎么解决? 1、设置了环境变量SET LOCALE=0804; 2.在platform settings中选择了中文(中国),英文(美国),默认语言设为中文; 3.在P ...…

查看全部问答>

求助:如何测量白石灰料位?

求助:料仓里的白石灰粉,当放料后,形成如图(四周高,中间低的料位情况)。 这时候测量仪表无法准确测了料位高度。 求助解决方法:如何能让料仓里的料位处于相对水平状态;或者采用什么样的仪表才能够做到精确测量?…

查看全部问答>