x86-64 - AMD 架构上是否有与 Intel 的 MSR_SMI_COUNT 等效的寄存器?

标签 x86-64 hardware amd-processor

在最新的 Intel CPU 上,可以通过读取 msr 0x34 来计算已发生的 SMI 数量。

我已经检查了手册 - https://developer.amd.com/resources/developer-guides-manuals/

对于等效的寄存器/函数,没有成功。

最佳答案

AMD Zen 指定 LsSmiRx 性能计数器 System Management Interrupts (SMIs) :

PMCx02B [SMIs Received] (Core::X86::Pmc::Core::LsSmiRx)
Counts the number of SMIs received.

( Open-Source Register Reference For AMD Family 17h Processors Models 00h-2Fh. Rev 3.03, 2018, page 153 )

在Linux上,你可以这样监控它:

# perf stat -e ls_smi_rx -I 60000

此命令每分钟打印所有 CPU 上聚合的所有新触发的 SMI 的计数。


这意味着对于监视 - 与 Intel CPU 上可用的 MSR_SMI_COUNT 寄存器不同 - 您必须主动对 PMU 寄存器进行编程(以观察 LsSmiRx 事件)。


注意:上述引用的 AMD 文档确认 AMD Zen 不支持 SMI_COUNT MSR (0x34),因为它未包含在可用 MSR 列表中(第 2.1.10 章,第 77 页)。

关于x86-64 - AMD 架构上是否有与 Intel 的 MSR_SMI_COUNT 等效的寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51055831/

相关文章:

linux - 为什么 RCX 不用于将参数传递给系统调用,而是用 R10 代替?

c++ - 多线程妄想症

c++ - 我可以定义一个结构,其对象将始终位于单独的缓存行中吗

assembly - gdb 对 .bss 中的符号和 .data 中的符号的行为不同

math - FPU 使用什么算法来计算超越函数?

c++ - 是否值得学习 AND 特定的 API?

c++ -/d2vzeroupper MSVC 编译器优化标志在做什么?

encryption - 我们可以读取和编程AMD处理器的微码吗?

assembly - 使用 bsf、blf 查找第一位、最后一位汇编

c - 为什么写入内存比读取慢得多?