1

すべての CPU の CPU バックトレースをダンプする必要があります。

Linux ではdump_stack、現在の CPU のスタックをダンプするために使用できるものがあります。

私の要件は、すべての CPU (私の場合は 4 つの CPU) で実行されているプロセスのコール スタックを出力することです。どうすればそれができますか?このためのビルド済み API はありますか?

4

1 に答える 1

2

他の CPU で何かをトリガーするには、プラットフォームは IPI を使用します。

アームでこれを行うロジックは、 smp_send_all_cpu_backtrace()-> file -で定義されています。kernel/arch/arm/kernel/smp.c

これにより、IPI がすべての CPU に送信され、スタックがダンプされます。コードで使用する場合は、プラットフォームに依存しないラッパーarch_trigger_all_cpu_backtrace()を含めて使用しますasm/irq.h

#include <asm/irq.h>

void dump_all_cpu_stack(void)
{
     arch_trigger_all_cpu_backtrace();
}
于 2013-11-28T05:18:52.657 に答える