在 CPU 上初始化性能计数器监视器控制寄存器

Initializing Performance Counter Monitor control registers on a CPU

有谁知道哪个模块负责初始化 x86 上的性能计数器监视器 (PCM) 控制寄存器 CPU?它是由复位时的硬件完成的,还是由引导加载程序或其他内核模块完成的?

性能监视器计数器 (PMC) 不需要初始化,当软件要使用该功能时需要对其进行编程(或设置)。

CPU 重置后不会对 PMC 做任何事情,至少在架构上不可见(即对程序员可见)。

引导加载程序不处理此类事情。

它是一个处理 PMC 的内核模块,因为它们是模型特定寄存器 (MSR),只能通过特权指令(如 rdmsrwrmsr)访问(即它们需要内核 space 中 运行 的代码)。 然后,内核模块可以通过 OS 接口或允许非特权代码执行指令 rdpmc 来向用户 space 程序公开功能(尽管它只允许读取已经预设计数器)。


要了解有关 PMC 的更多信息,请参阅 Intel Manual 3B, Chapter 18