Kernel 如何在每次溢出后生成性能监视中断

Kernel 如何在每次溢出后生成性能监视中断,kernel,performancecounter,interrupt-handling,systems-programming,apic,Kernel,Performancecounter,Interrupt Handling,Systems Programming,Apic,我想配置性能计数器IA32_PERF_FIXED_CTR0,在每N条失效指令后生成性能监视中断(PMI) 问题是,尽管我得到了第一个PMC中断,但即使我将计数器重置为其初始计数,我也没有得到任何进一步的中断,请清除溢出标志,如中所述 我做了一些检查,在重置计数器的值后进行了一些打印,我验证了这是正确的,我还验证了计数器继续从重置值开始计数。我还验证了计数器在重置后溢出,但由于某些原因,没有生成中断 有人能告诉我如何在每N条指令后生成中断吗。我们将非常感谢您的帮助 不要忘记清除LVT性能计数器寄存

我想配置性能计数器IA32_PERF_FIXED_CTR0,在每N条失效指令后生成性能监视中断(PMI)

问题是,尽管我得到了第一个PMC中断,但即使我将计数器重置为其初始计数,我也没有得到任何进一步的中断,请清除溢出标志,如中所述

我做了一些检查,在重置计数器的值后进行了一些打印,我验证了这是正确的,我还验证了计数器继续从重置值开始计数。我还验证了计数器在重置后溢出,但由于某些原因,没有生成中断


有人能告诉我如何在每N条指令后生成中断吗。我们将非常感谢您的帮助

不要忘记清除LVT性能计数器寄存器中的中断掩码位;以启用进一步的中断。 每次LAPIC处理性能监控中断时,该标志自动设置为1,从而阻止任何后续PMI。阅读《英特尔文件》第10章关于LAPIC的内容