繁体   English   中英

如何使用较新的perf工具前端和较旧的perf版本的记录

[英]How do I use a newer perf tool front end with a record from an older perf version

我正在ARM板上的旧版内核上运行perf记录。 内核版本是3.18.21-rt19

板上的perf版本同样是版本3.18.21。

虽然我可以在此perf上记录和使用报告功能,但是此版本报告的TUI非常糟糕/不存在。 它不是可扩展部分(在图形模式下),而是显示为一个巨大的可滚动功能列表,非常难以使用。 另外由于某些原因,我的C ++函数名称没有被删除,因此很难阅读它。

有可能是这样的:

  1. 将在此旧ARM内核上创建的perf.data导出到运行较新内核和较新版本perf的x86计算机,并在所述计算机上使用perf报告。 当我尝试这样做时(我运行内核4.4.0-31-通用运行perf版本4.4.13)我丢失所有符号,即使在ARM机器上运行perf报告显示符号就好了(C ++名称仍然被破坏) )。 我不确定这是否因为这些内核版本之间的perf.data格式发生了变化,或者x86版本是否完全无法读取ARM机器生成的数据。

  2. 为我的旧内核构建一个更新的perf版本(至少是前端),进行去整理并暴露更新的更好的TUI。

在我的ARM板上更改内核版本对我来说不是一个选择。

导出perf.data

使用perf archive命令支持导出perf.data ,检查man perf-archive - http://man7.org/linux/man-pages/man1/perf-archive.1.html

perf-archive - 使用perf.data文件中的build-id创建包含目标文件的存档

  perf archive [file] 

此命令运行perf-buildid-list --with-hits,并使用找到的buildids收集文件,以便可以在另一台计算机上分析perf.data内容。

在Perf教程中没有使用perf存档的示例: https//perf.wiki.kernel.org/index.php/Tutorial,但在http://events.linuxfoundation.org/sites/events/files/slides中提到过/LinuxConJapan2015-DynamicProbes.pdf#page=22 “什么是Buildid-cache?..这也允许我们从远程机器分析perf.data(perf-archive这样做)”

使用perf与另一个体系结构(x86)来解决ARM文件很难,所以你可能会尝试一些ARM系统模拟器(如qemu / qemu-system-arm )和一些最近的ubuntu / arm或linaro / arm iso或root图像(他们应该有全功能perf )。

您也可以尝试上传更好的perf实用程序版本(由您构建或从ubuntu或linaro复制)到您的主板 - perf用户空间工具与各种内核版本的perf_events内核接口兼容,并且它可以读取perf.data用不同版本的perf工具记录的perf.data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM