如何在英特尔处理器跟踪

时间:2016-11-17 08:03:29

标签: linux-kernel intel trace processor

我在https://github.com/andikleen/simple-pt

中尝试simple-pt

确认缓冲区用作环。

如果发生内部缓冲区溢出,可以跟踪自身暂停并使内核模块处理它吗?

1 个答案:

答案 0 :(得分:0)

您可以使用双缓冲区方法和两个ToPA表,每个表上的STOP位设置为1。当您的程序(用户空间)从另一个读取时,英特尔PT硬件将始终填充一个缓冲区。一旦从缓冲区读取所有数据,用户将负责交换缓冲区。如果硬件缓冲区填满,则STOP位将停止跟踪并将IA32_RTIT_STATUS MSR上的STOPPED位置1。然后,您可以检查此位以确定是否发生缓冲区溢出。