基于AMD 19h架构(EPYC 7443)的perf分析事件不支持问题求助
AMD EPYC 7443 上 perf 硬件事件报错的解决思路
核心问题根源
你使用的 RHEL7 3.10.0-957 内核版本过旧,对 Zen2 架构(EPYC 7443 属于 AMD Family 19h)的 perf 硬件事件支持不完善,很多《PPR》文档里定义的事件并未被内核的 perf 子系统适配,这是报错的主要原因。
具体解决步骤
- 优先升级内核:将内核更新到 RHEL7 的最新维护版本(比如 3.10.0-1160 及以后),这类版本补全了对 Zen2 架构的 perf 事件支持,大概率能直接解决问题。如果无法升级内核,尝试以下方案:
- 调整事件格式与权限:
- 部分硬件事件不支持用户态限定符
:u,去掉该后缀后重新执行命令:perf record -p <pid> -e r<event_number> - 确认事件编号格式正确:AMD raw 事件需为四位十六进制格式(例如
r00c0),避免位数或前缀错误。
- 部分硬件事件不支持用户态限定符
- 验证核心事件可用性:
- 部分事件仅在特定核心类型(如 CCD/CCX)上支持,可通过
taskset绑定到单个核心执行:taskset -c <core_id> perf record -p <pid> -e r<event_number> - 检查
/sys/devices/cpu/rdpmc文件内容是否为1,若为0,需添加内核参数rdpmc=1后重启系统,否则用户态程序无法读取性能计数器。
- 部分事件仅在特定核心类型(如 CCD/CCX)上支持,可通过
- 升级 perf 工具:老版本的 perf 可能无法识别 Zen2 的新事件,执行以下命令更新到对应内核的最新版本:
yum update perf
内容的提问来源于stack exchange,提问作者Brave
相关产品推荐
相关产品推荐

