2

我想配置性能计数器 IA32_PERF_FIXED_CTR0 以在每 N 条退役指令后生成性能监控中断 (PMI)。

问题是,虽然我得到了第一个 PMC 中断,但即使我将计数器重置为其初始计数,我也没有得到任何进一步的中断,清除溢出标志,如英特尔参考手册中所述。

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

有人可以让我知道如何在每 N 条指令后生成中断。任何帮助将不胜感激。

4

1 回答 1

1

不要忘记清除LVT性能计数器寄存器中的中断屏蔽位;启用进一步的中断。每次 LAPIC 处理性能监视中断时,此标志自动设置为 1,从而阻止任何后续 PMI。阅读有关 LAPIC 的英特尔文档第 10 章。

于 2018-03-11T17:30:57.393 回答