簡體   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