CPU使用率的查看以及性能分析(perf top/record/report)
Linux内核调试利器|kprobe 原理与实现
Linux Perf 性能分析工具及火焰图检查
perf record -e cache-misses -g gst-launch-1.0 videotestsrc num-buffers=10000 is-live=true pattern=smpte ! “video/x-raw,format=RGB, width=1280, height=720” ! kmssink driver-name=tidss bus-id=37 display-height=1280 display-height=720 plane-id=31 connector-id=39
perf report -i perf.data -g --stdio -f >perf.unfold
git clone https://github.com/brendangregg/FlameGraph.git
FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
FlameGraph/flamegraph.pl perf.folded > perf.svg
perf record -a -g gst-launch-1.0 videotestsrc num-buffers=10000 is-live=true pattern=smpte ! “video/x-raw,format=RGB, width=1280, height=720” ! kmssink driver-name=tidss bus-id=37 display-height=1280 display-height=720 plane-id=31 connector-id=39
perf script -i perf.data >perf.unfold
使用sudo perf top命令来查看当前系统中哪个内核函数占用CPU的比例较大
perf top --call-graph graph -U
查看某个进程的情况,这里为systemd进程
perf top --call-graph graph -p 1 -K
ti j7 ve中,升级了sdk后,跑个第三方的sdk,cpu占用率明显高很多,
想查看一下cpu的频率,对比后发现升级前是没有动态调频调压的节点
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
去掉 operating-points-v2节点后,cpu占用率与升级前差不多,这一块sdk里面的opp有点问题
TDA4VE-Q1: ta4ve-linux-CPU-usage is too high
.../arch/arm64/boot/dts/ti/k3-j721s2.dtsi | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/board-support/ti-linux-kernel-6.1.80+gitAUTOINC+2e423244f8-ti/arch/arm64/boot/dts/ti/k3-j721s2.dtsi b/board-support/ti-linux-kernel-6.1.80+gitAUTOINC+2e423244f8-ti/arch/arm64/boot/dts/ti/k3-j721s2.dtsi
index a36cfe7a5..029450433 100644
--- a/board-support/ti-linux-kernel-6.1.80+gitAUTOINC+2e423244f8-ti/arch/arm64/boot/dts/ti/k3-j721s2.dtsi
+++ b/board-support/ti-linux-kernel-6.1.80+gitAUTOINC+2e423244f8-ti/arch/arm64/boot/dts/ti/k3-j721s2.dtsi
@@ -53,7 +53,7 @@ cpu0: cpu@0 {
next-level-cache = <&L2_0>;
clocks = <&k3_clks 202 0>;
clock-names = "cpu";
- operating-points-v2 = <&cpu0_opp_table>;
+ // operating-points-v2 = <&cpu0_opp_table>;
};
cpu1: cpu@1 {
@@ -70,7 +70,7 @@ cpu1: cpu@1 {
next-level-cache = <&L2_0>;
clocks = <&k3_clks 203 0>;
clock-names = "cpu";
- operating-points-v2 = <&cpu0_opp_table>;
+ // operating-points-v2 = <&cpu0_opp_table>;
};
};
@@ -97,7 +97,7 @@ opp1-250000000 {
L2_0: l2-cache0 {
compatible = "cache";
- cache-unified;
+ // cache-unified;
cache-level = <2>;
cache-size = <0x100000>;
cache-line-size = <64>;
--
2.25.1