You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora 37编译PAPI遇事件检测失败及组件禁用问题求助

解决Fedora 37上编译PAPI 7.0.0.0时perf_event组件禁用问题

问题根源

核心原因是libpfm4无法识别AMD Ryzen 5 5600H的PMU(性能监控单元),导致PAPI的perf_event组件被禁用,进而无可用性能事件,最终引发测试失败。

解决步骤

1. 手动编译安装最新版libpfm4

Fedora 37仓库中的libpfm4版本对AMD Zen3架构(5600H属于该架构)的支持不完善,需编译最新源码:

# 安装编译依赖
sudo dnf install git gcc make

# 克隆libpfm4源码
git clone https://github.com/andikleen/libpfm4.git
cd libpfm4

# 编译并安装
make
sudo make install
sudo ldconfig

2. 重新编译PAPI并指定libpfm4路径

之前的编译未正确关联最新libpfm4,重新编译时明确指定路径:

# 进入PAPI源码目录,先清理旧编译文件
cd path/to/papi-7.0.0.0
make clean
./configure --with-libpfm4=/usr/local
make
sudo make install

3. 验证内核perf配置

确保内核开启了perf相关必要选项(Fedora 37默认已开启,可验证):

grep -i perf /boot/config-$(uname -r)

需确认CONFIG_PERF_EVENTS=y和CONFIG_HW_PERF_EVENTS=y两项存在且为y。

4. 手动指定AMD PMU类型(可选)

若上述步骤无效,可通过环境变量强制libpfm4识别AMD PMU:

export LIBPFM_FORCE_PMU=amd64

之后运行./utils/papi_component_avail和./utils/papi_avail验证组件状态。

5. 验证修复结果

完成配置后重新测试:

make test
./utils/papi_component_avail
./utils/papi_avail

额外提示

  • 若问题仍存在,检查PAPI编译输出,确认是否正确检测到libpfm4
  • 确保当前用户有权限访问perf事件,可临时用sudo运行测试,或通过修改/etc/sysctl.conf添加kernel.perf_event_paranoid=0并执行sudo sysctl -p配置永久权限

内容的提问来源于stack exchange,提问作者Devansh_Jain_21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:15:49