Linux 的“perf”内核子系统在 Linux 6.1 版本获得了一些新的 AMD CPU 功能,比较重要的是 perf mem(内存报告) 和 perf c2c(Cache-To-Cache) 两项功能,其中 perf mem 功能用于各种内存统计,而 perf c2c 功能用于统计 CPU 的缓存到缓存信息。
使用带有新功能的 perf 工具,可以显示内存的 L1/L2/L3 缓存命中率、本地 RAM 命中率、远程 RAM 命中率、远程缓存命中、未缓存命中和其他类似指标。不过需要注意,最新的 perf c2c/mem 支持依赖于具有基于指令采样 (IBS) 支持的 AMD CPU。
Linux 6.1 的 perf 子系统核心更改还包含其他功能和优化,比如 Intel PEBS TSC 时间戳集成、Intel Raptor Lake S CPU 支持、硬件断点改进和其他修复。
在 Git PR 邮件中可以看到 perf 工具的所有改动,包含 AMD perf mem/c2c 的更新细节,以及对 perf lock/lock contention 的改进、Intel PT 改进和其他内容。
关于 perf
perf 是Linux 系统的一款性能分析工具,能够进行函数级和指令级的热点查找,可以用来分析程序中热点函数的CPU占用率,从而定位性能瓶颈。
Linux 内核的“perf”是一个基于内核的子系统,提供一个性能分析框架,比如硬件(CPU、PMU(Performance Monitoring Unit))功能和软件(软件计数器、tracepoint)功能。
通过 perf,应用程序可以利用 PMU、tracepoint 和内核中的计数器来进行性能统计。