1. 程式人生 > >linux 核心中斷trace機制使用

linux 核心中斷trace機制使用

如果要開啟Linux核心的中斷trace機制,需要在config裡面,開啟如下選項:

CONFIG_IRQSOFF_TRACER=y

並且需要重新編譯核心。

然後,依次輸入以下命令:

echo 0 > /sys/kernel/debug/tracing/tracing_on

echo > /sys/kernel/debug/tracing/trace

echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb

echo irqsoff > /sys/kernel/debug/tracing/current_tracer

echo > /sys/kernel/debug/tracing/trace

echo 1 > /sys/kernel/debug/tracing/tracing_on

等待一段時間

echo 0 > /sys/kernel/debug/tracing/tracing_on

最後,需要獲取中斷trace的log檔案:

cat /sys/kernel/debug/tracing/trace

這會獲取到如下的一個日誌:

每一個欄位的解釋,在檔案的開頭,基本上都有說明。

透過這個檔案,我們可以得知一些資訊:

1)哪一號中斷,在哪一個時間戳上,在哪個CPU核上面執行,在哪個世家戳上退出。

2.)irq_handler_entry描述的是中斷進入的時間點,irq_handler_exit

描述的是中斷退出的時間點。irq=xxx這個欄位,顯示的是當前中斷的中斷號。

3.)由於中斷trace機制,是在某些時間點上,將中斷的一些資訊存在buffer當中,然後再做分析,因此,能記錄的中斷資訊有限。會錯過對一些中斷資訊的統計。