标签: linux-kernel intel trace processor
我在https://github.com/andikleen/simple-pt
确认缓冲区用作环。
如果发生内部缓冲区溢出,可以跟踪自身暂停并使内核模块处理它吗?
答案 0 :(得分:0)
您可以使用双缓冲区方法和两个ToPA表,每个表上的STOP位设置为1。当您的程序(用户空间)从另一个读取时,英特尔PT硬件将始终填充一个缓冲区。一旦从缓冲区读取所有数据,用户将负责交换缓冲区。如果硬件缓冲区填满,则STOP位将停止跟踪并将IA32_RTIT_STATUS MSR上的STOPPED位置1。然后,您可以检查此位以确定是否发生缓冲区溢出。