在yocto中远程使用perf

问题描述 投票:0回答:1

在我的客户中,我们正在从 ptxdist 切换到 Yocto。与此同时,我们还改用性能低得多的处理器,因此需要进行一些优化。我正在寻找一种信息丰富且易于使用且与 Yocto 兼容的分析工具。

我找到了此页面,并且按照说明使用 perf 取得了一些成功。简而言之,这些说明涉及在目标上安装调试符号,然后在那里运行

perf record
perf report

这种方法并非没有缺点

  • 创建带有调试符号的磁盘映像比不带调试符号的磁盘映像花费的时间要长得多
  • 使用调试符号刷新图像也需要更长的时间
  • 目标实际上没有足够的内存来运行性能报告,所以我必须添加一个交换文件
  • 我有没有提到目标很慢? ;-)

我现在想做“远程分析”。 IE。与“远程调试”类似,我只想在主机上有调试符号,在目标上运行

perf record
,然后在主机上运行
perf report
。在谷歌上,我发现了一些提示,这应该是可能的,但没有任何关于如何做到这一点的说明。

目前我陷入了绝望的困境。也就是说:

perf
不是SDK的一部分,并且似乎没有
perf-native
perf-cross
包可供构建。另一方面,我认为这个想法并不奇怪,我是第一个尝试这个的人。

有什么建议吗?

(目前使用 Yocto Langdale,因为这似乎是 Xilinx 发布的最后一个,但我很高兴从任何地方获取灵感;-)

arm embedded-linux yocto perf
1个回答
0
投票

您可以尝试扩展现有的 perf.bb 配方,以提供

nativesdk-perf
,如 docs.yoctoproject.org/ref-manual/classes.html#nativesdk

中所述

作为参考,通过使用字符串

BBCLASSEXTEND = "nativesdk"

的文本搜索来搜索类似的食谱

扩展

perf.bb
后,将以下行添加到您的 image.bb 文件中
TOOLCHAIN_HOST_TASK += "nativesdk-perf"

然后运行

bitbake populate_sdk

并检查生成的 SDK 是否包含该包。

检查 SDK 内容的简单方法是位于

host.manifest
中的
build/tmp-glibc/deploy/sdk/host.manifest
文件。它描述了填充到 Yocto SDK 中的包。

© www.soinside.com 2019 - 2024. All rights reserved.