如何在每次溢出后生成性能监控中断
how to generate the Performance monitoring interrupt after every overflow
我想配置性能计数器 IA32_PERF_FIXED_CTR0 以在每 N 条退出指令后生成性能监控中断 (PMI)。
问题是,虽然我得到了第一个 PMC 中断,但我没有得到任何进一步的中断,即使我将计数器重置为其初始计数,清除溢出标志,如 Intel reference manual.
我在重置计数器的值后打印了一些东西,做了一些检查,我验证了这是正确的,我还验证了计数器继续从重置值开始计数。我还验证了计数器在重置后溢出,但由于某种原因,没有产生中断。
谁能告诉我如何在每 N 条指令后产生中断。任何帮助将不胜感激。
不要忘记清除LVT性能计数器寄存器中的中断屏蔽位;启用进一步的中断。
每次 LAPIC 处理性能监控中断时,此标志都会自动设置为 1,从而阻止任何后续 PMI。阅读有关 LAPIC 的英特尔文档第 10 章。
我想配置性能计数器 IA32_PERF_FIXED_CTR0 以在每 N 条退出指令后生成性能监控中断 (PMI)。
问题是,虽然我得到了第一个 PMC 中断,但我没有得到任何进一步的中断,即使我将计数器重置为其初始计数,清除溢出标志,如 Intel reference manual.
我在重置计数器的值后打印了一些东西,做了一些检查,我验证了这是正确的,我还验证了计数器继续从重置值开始计数。我还验证了计数器在重置后溢出,但由于某种原因,没有产生中断。
谁能告诉我如何在每 N 条指令后产生中断。任何帮助将不胜感激。
不要忘记清除LVT性能计数器寄存器中的中断屏蔽位;启用进一步的中断。 每次 LAPIC 处理性能监控中断时,此标志都会自动设置为 1,从而阻止任何后续 PMI。阅读有关 LAPIC 的英特尔文档第 10 章。