Loading... # AMD Linux 下 Per Core 监控问题技术分析 # 一、事件概述 ## 1. 事件背景 2025 年 1 月,开发者 Manjusaka_Lee 在尝试实现 AMD CPU 在 Linux 下的 per core(每核心)温度和功率监控功能时,遇到技术挑战。 ## 2. 核心问题 AMD CPU 在 Linux 环境下无法直接获取 per core 的温度、功率等监控信息,需要通过特定的 PM Table(Performance Monitoring Table)进行访问。 # 二、技术背景 ## 1. AMD CPU 监控机制 AMD CPU 的监控信息存储在 PM Table 中,需要通过特定的接口和驱动程序才能访问。 ## 2. Linux 下的监控工具 传统 Linux 监控工具(如 lm-sensors)对 AMD CPU 的 per core 监控支持有限。 # 三、技术分析 ## 1. PM Table 结构 PM Table 包含每个 CPU 核心的性能和功耗数据。访问这些数据需要: - 正确的内存映射地址 - 适当的权限和驱动支持 - 符合 AMD 规范的数据解析方法 ## 2. 开发过程 根据原始推文,开发者在尝试基于现有代码实现功能时发现了多个问题,涉及 PM Table 的正确解析和访问。 # 四、解决方案方向 ## 1. 驱动层面 需要 AMD 官方或社区提供完善的 Linux 驱动支持。 ## 2. 用户空间工具 通过读取 sysfs 接口或使用专门的监控库获取数据。 ## 3. 参考实现 基于开源项目 https://github.com/Manjusaka/ryzen_smu_utils 等工具进行开发。 # 五、技术挑战 ## 1. 接口复杂性 AMD PM Table 的访问接口相对复杂,需要深入了解硬件规范。 ## 2. 兼容性 不同代号的 AMD CPU 可能有不同的 PM Table 结构。 ## 3. 权限要求 访问硬件监控信息通常需要 root 权限。 # 六、行业影响 ## 1. AMD Linux 生态 此问题反映了 AMD 在 Linux 生态下的监控工具仍需完善。 ## 2. 开发者体验 相较于 Intel CPU 的工具支持,AMD 开发者在 Linux 下进行性能调优面临更多挑战。 *** ## 参考资料 1. [原始推文](https://x.com/Manjusaka_Lee/status/2013006189739847829) 2. [ryzen_smu_utils](https://github.com/Manjusaka/ryzen_smu_utils) 最后修改:2026 年 01 月 19 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏