[Python解析systrace.html]chrome打開systrace分析,圖形顯示時間點與文本時間點一一對應,方便debug使用

一、編寫這個腳本的理由:
抓取systrace之後,需要使用chrome在網站chrome://tracing/解析出來,但是很多時候,我們發現問題之後,需要vim systrace文件定位到具體位置。這時候問題來了,不容易查找這個task到底在文件的哪個位置。這個腳本的目的的就是解決此問題。

二、使用方式
在systrace上面作爲零點判斷的依據是irq、ipi或者task。目前抓取的systrace沒有看到例外的。所以Python腳本里面使用上面三個之一作爲零點的依據,即誰出現的最早誰就是零點。

python SystraceAnalysis.py -i systrace.html -o trace.txt -d delta_value
說明:
systrace.html是實際抓取的systrace
trace.txt:是時間戳修正的trace文件
delta_value:是chrome打開systrace.html之後手動查找的在瀏覽器上面看到的第一個ipi/irq/task的位置,delta_value數值單位爲us,如果碰到其他單位,請自動轉換。如1.3ms,則delta_value=1300
如下所示:
在這裏插入圖片描述

分三種情況來解析

  1. trace中第一次出現irq_handler_entry,則作爲零點,delta value就是此irq在chrome顯示的相對零點的數值,如上圖所示爲216
  2. trace中第一次出現ipi_raise,上面類似
  3. 在user版本中,不能使用irq event抓取systrace,所以systrace中不存在irq和ipi信息,那麼這種就以sched_wakeup && sched_switch並行出現作爲相對零點。如下圖所以:
    在這裏插入圖片描述
    那麼執行如下命令解析如下:
    python SystraceAnalysis.py -i 0703-3.html -o 0703-3-1.html -d 16
    示例在最後

三、解析之後如何使用
chrome打開原始systrace.html文件
找到delta_value數值
執行Python腳本:python SystraceAnalysis.py -i systrace.html -o trace.txt -d delta_value
vim 打開trace.txt,就可以對應到systrace.html上的各類信息了。

Python源碼如下:https://github.com/samarxie/systrace/blob/master/SystraceAnalysis.py

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章