perf-event

如何在 Linux 中使用 Ftrace 获取调度延迟?
perf-event

如何在 Linux 中使用 Ftrace 获取调度延迟?

我正在开发一个嵌入式 Linux (kernel-5.10.24) 系统,其中启用了 ftrace 但没有perf。 我检查了系统中的跟踪,并得到以下信息, # ls /sys/kernel/tracing/events/sched/ -l total 0 -rw-r--r-- 1 root root 0 Jan 1 1970 enable -rw-r--r-- 1 root root 0 Jan 1 1970 filter drwxr-x--- 2 root ...

Admin

无法在我的计算机上找到有关 TLB 的任何信息,也无法获取有关 TLB 的硬件计数器的信息
perf-event

无法在我的计算机上找到有关 TLB 的任何信息,也无法获取有关 TLB 的硬件计数器的信息

我使用的Ubuntu版本是Ubuntu 18.04.6 LTS,内核版本是5.4.0-148 通用。我的处理器是第 12 代英特尔 (R) 酷睿 (TM) i7-12700。 我想知道我的CPU中不同页面大小(1G、2MB、4KB)的TLB条目数量,以及程序执行期间dTLB未命中的数量。 cpuid -1命令告诉我它们是0: L1 TLB/cache information: 2M/4M pages & L1 TLB (0x80000005/eax): instruction # entries = 0x0 (0) ...

Admin

无法使用 perf 查找 L3 Cache 未命中率
perf-event

无法使用 perf 查找 L3 Cache 未命中率

当我尝试使用 perf 时,我试图获取 L3 缓存未命中率。以下是我运行的命令: perf stat -e instructions,LLC-load-misses,LLC-loads ./program <arg1> <arg2> <arg3> 然后我得到以下输出: 667,922,092,353 instructions <not supported> LLC-load-miss...

Admin

如何将指标与 perf stat 结合使用
perf-event

如何将指标与 perf stat 结合使用

perf list 显示了一堆所谓的指标。该列表开头为 List of pre-defined events (to be used in -e): Metrics: BAClear_Cost [Average Branch Address Clear Cost (fraction of cycles)] C2_Pkg_Residency [C2 residency percent per package] C3_Core_Residency [C3 residency percent per cor...

Admin

Archlinux,“kernel.perf_event_paranoid”不被尊重
perf-event

Archlinux,“kernel.perf_event_paranoid”不被尊重

当读取 CPUS 上的性能计数器 (PMC) 时,必须kernel.perf_event_paranoid(<=1请参阅内核文档) 下面的程序读取 PMC 并且应该提前退出1,如果它无法打开计数器,kernel.perf_event_paranoid即>1(在 后检查syscall) 我测试过 ArchLinuxLinux host1 5.17.9-arch1-1 #1 SMP PREEMPT Wed, 18 May 2022 17:30:11 +0000 x86_64 GNU/Linux 乌班图Linux host2 5.15.0-30-ge...

Admin

如何根据挂钟时间使用“perf”获取堆栈样本
perf-event

如何根据挂钟时间使用“perf”获取堆栈样本

我正在尝试使用 Linux 的perf_events框架来调查我们一台服务器上的应用程序的问题。根据我对该perf工具的阅读,收集堆栈相对简单。 我想知道是否可以简单地使用挂墙时间作为一种事件来每 N 秒收集一次堆栈。 我当前使用的命令是: perf record -e cycles -T -o <dir>/samples.data -F 1 --call-graph dwarf -T -p <pid> 根据我目前的理解,该命令将每 1 秒采样一次 ( ) 并从进程 ( ) 中-F 1抓取堆栈 ( ) ,直到 perf 命令被信号终...

Admin

使用性能记录/报告进行高频性能计数器采样
perf-event

使用性能记录/报告进行高频性能计数器采样

我想使用该perf工具以高频率(即 100-200Hz)检索性能计数器计数(功能类似于https://github.com/RRZE-HPC/likwid/wiki/likwid-perfctr#the-timeline-mode但频率更高)。有没有办法做到这一点?如果是这样,在使用 记录perf record和报告结果时需要使用哪些标志perf report? 到目前为止,我已尝试以下方法在sleep 5执行期间以 5 毫秒的间隔检索 r6d70 性能计数器:sudo perf record -F200 -e r6d70 -a sleep 5。但是,当我...

Admin

Perf 工具,用于分析,在重负载时崩溃
perf-event

Perf 工具,用于分析,在重负载时崩溃

当我在平均负载期间使用“perf record -F 99 -g -p -- sleep 300”时,我可以毫无问题地获取 perf.data 文件。但当负载高时,就会崩溃。获得好的结果的唯一方法是将频率降低到 30 左右,这很糟糕。 理想情况下,速率应该较高才能获得更好的结果(约 997 个样本/秒)。有什么办法解决这个问题吗? 我认为这个问题可能与Linux内核空间有关。如果是这样,我需要做什么来解决这个问题? ...

Admin

`perf stat` 选项 `--cpu` 实际上显示了什么?
perf-event

`perf stat` 选项 `--cpu` 实际上显示了什么?

我试图理解--cpu的选项perf-stat。在手册页中它说: 仅依赖提供的 CPU 列表。多个 CPU 可以以逗号分隔的列表形式提供,不带空格:0,1。 CPU 的范围用 - 指定:0-2。在每线程模式下,该选项被忽略。 -a 选项对于激活系统范围的监控仍然是必需的。默认值是依赖所有 CPU。 我们可以用这个选项来控制程序将在哪个CPU上执行吗?如果我输入--cpu 0,程序只会在 CPU 0 上执行吗?如果不是,这个选项的价值是多少(因为每次我们使用这个选项运行时结果可能会有所不同perf stat)? ...

Admin

聚苯乙烯
perf-event

聚苯乙烯

正在寻找什么可以perf_events在Linux上监控,我找不到什么Kernel PMU event?也就是说,随着perf version 3.13.11-ckt39节目perf list事件,如: branch-instructions OR cpu/branch-instructions/ [Kernel PMU event] 总体来说有: Tracepoint event Software event Hardware event Hardware cache event Raw hardware event descriptor H...

Admin

perf 无法在非常大的进程上工作
perf-event

perf 无法在非常大的进程上工作

我经常使用 perf 来分析我的应用程序。最近我买了几台新机器,每台都有~750G RAM。我正在尝试分析一个在其中一个上使用大约 400G 内存的进程。除了一台之外,这在所有新机器上都可以正常工作。它们的安装方式都是相同的,运行 ubuntu。 我尝试了perf安装apt-get并编译了我自己的来自 git。 运行时,./perf top -p 14182我有时会设法获得结果(经过漫长的等待,而且很少),但大多数其他时候我会得到: The sys_perf_event_open() syscall returned with 3 (No such p...

Admin

尽管使用 -fno-omit-frame-pointer 编译,但 perf_event 的性能报告缺少堆栈符号
perf-event

尽管使用 -fno-omit-frame-pointer 编译,但 perf_event 的性能报告缺少堆栈符号

尽管阅读了许多有关该主题的教程并做了(我认为)所有必要的事情,但我仍在努力让 perf_events 为我提供带有符号的堆栈跟踪。我的本地安装的 perf(详细信息如下)可能以某种方式出现了问题?无论如何,这就是我所做的: main.cpp 是一个简单的 C++ 程序,它调用同一文件中定义的几个函数,分配一些内存并释放它,然后打印一些内容。 编译命令: gcc -std=c++11 -lstdc++ main.cpp -Og -fno-omit-frame-pointer -fno-inline -o arr_test 配置文件命令: perf ...

Admin

为什么我在性能列表中找不到硬件缓存事件?
perf-event

为什么我在性能列表中找不到硬件缓存事件?

我在新买的笔记本电脑上使用 linux perf 时遇到问题:我的 perf 列表中没有可用的硬件缓存效果!嗯,这确实是我想要采样的所有重要信息!这是我的性能列表: List of pre-defined events (to be used in -e): cpu-cycles OR cycles [Hardware event] instructions [Hardware event] cache-reference...

Admin

使 Perf Kernel Counter 工作的问题
perf-event

使 Perf Kernel Counter 工作的问题

我编写了一个内核模块,它通过“perf_event_create_kernel_counter”API 创建性能计数器,然后定期读取其值。 我的应用程序适用于内核版本 4.0.9(及之前的修订版),但不适用于内核版本 4.1(及更高版本)。 基本上在内核的后续版本中,我只能读取软件计数器(例如PERF_COUNT_SW_CPU_CYCLES),但不能读取硬件计数器(例如PERF_COUNT_HW_CACHE_MISSES)。 更具体地说,在内核版本 4.1 及更高版本中,硬件计数器的读数始终为零。 有谁知道可能导致此问题的原因以及如何解决它? ...

Admin