ftrace - 几种tracer的打印例子

  • ftrace - Function Tracer — The Linux Kernel documentation
  • 【原创】Ftrace使用及实现机制 - 沐多 - 博客园 (cnblogs.com)

latency format

nop tracer和function tracer下,latency format的时间戳是相对开始trace的时间,non-latency format的时间戳是相对于系统启动的时间。

1.nop tracer

1.1 latency format

echo nop > /sys/kernel/tracing/current_tracer
echo 1 > /sys/kernel/tracing/events/sched/enable
echo 1 >  /sys/kernel/tracing/options/latency-format
echo 1 > /sys/kernel/tracing/tracing_onls -ltrecho 0 > /sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > ftrace.log
# tracer: nop
#
# nop latency trace v1.1.5 on 6.8.0-44-generic
# --------------------------------------------------------------------
# latency: 0 us, #35/35, CPU#0 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)
#    -----------------
#    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)
#    -----------------
#
#                    _------=> CPU#
#                   / _-----=> irqs-off/BH-disabled
#                  | / _----=> need-resched
#                  || / _---=> hardirq/softirq
#                  ||| / _--=> preempt-depth
#                  |||| / _-=> migrate-disable
#                  ||||| /     delay
#  cmd     pid     |||||| time  |   caller
#     \   /        ||||||  \    |    /bash-39688     1d..2. 18934us : sched_stat_runtime: comm=bash pid=39688 runtime=339570 [ns]bash-39688     1..... 18938us : sched_process_fork: comm=bash pid=39688 child_comm=bash child_pid=52539bash-39688     1d..2. 18944us+: sched_wakeup_new: comm=bash pid=52539 prio=120 target_cpu=003<idle>-0         3d..2. 18974us+: sched_switch: prev_comm=swapper/3 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=bash next_pid=52539 next_prio=120bash-39688     1..... 19049us : sched_process_wait: comm=bash pid=0 prio=120bash-39688     1d..2. 19050us : sched_stat_runtime: comm=bash pid=39688 runtime=116213 [ns]bash-39688     1d..2. 19053us!: sched_switch: prev_comm=bash prev_pid=39688 prev_prio=120 prev_state=S ==> next_comm=swapper/1 next_pid=0 next_prio=120ls-52539     3..... 19314us!: sched_process_exec: filename=/usr/bin/ls pid=52539 old_pid=52539ls-52539     3d.h1. 19596us!: sched_stat_runtime: comm=ls pid=52539 runtime=655689 [ns]ls-52539     3d.h1. 20596us!: sched_stat_runtime: comm=ls pid=52539 runtime=1000109 [ns]ls-52539     3d..3. 20948us : sched_waking: comm=kworker/u260:1 pid=35252 prio=120 target_cpu=003ls-52539     3d..4. 20952us!: sched_wakeup: comm=kworker/u260:1 pid=35252 prio=120 target_cpu=003

1.2 non-latency format

echo nop > /sys/kernel/tracing/current_tracer
echo 1 > /sys/kernel/tracing/events/sched/enable
echo 0 >  /sys/kernel/tracing/options/latency-format
echo 1 > /sys/kernel/tracing/tracing_onls -ltrecho 0 > /sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > ftrace.log
# tracer: nop
#
# entries-in-buffer/entries-written: 205/205   #P:4
#
#                                _-----=> irqs-off/BH-disabled
#                               / _----=> need-resched
#                              | / _---=> hardirq/softirq
#                              || / _--=> preempt-depth
#                              ||| / _-=> migrate-disable
#                              |||| /     delay
#           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
#              | |         |   |||||     |         |kworker/1:1-82432   [001] d.h2. 20393.301354: sched_stat_runtime: comm=kworker/1:1 pid=82432 runtime=687800 [ns]kworker/2:0-120412  [002] d.h1. 20393.301356: sched_stat_runtime: comm=kworker/2:0 pid=120412 runtime=419001 [ns]bash-80299   [003] d.h1. 20393.301370: sched_stat_runtime: comm=bash pid=80299 runtime=1007701 [ns]bash-80299   [003] d..2. 20393.301747: sched_stat_runtime: comm=bash pid=80299 runtime=376800 [ns]bash-80299   [003] ..... 20393.301790: sched_process_fork: comm=bash pid=80299 child_comm=bash child_pid=123642kworker/2:0-120412  [002] d..2. 20393.301878: sched_stat_runtime: comm=kworker/2:0 pid=120412 runtime=521699 [ns]bash-80299   [003] d..2. 20393.301902: sched_wakeup_new: comm=bash pid=123642 prio=120 target_cpu=000kworker/2:0-120412  [002] d..2. 20393.301972: sched_switch: prev_comm=kworker/2:0 prev_pid=120412 prev_prio=120 prev_state=I ==> next_comm=sshd next_pid=80143 next_prio=120kworker/1:1-82432   [001] d..2. 20393.302000: sched_stat_runtime: comm=kworker/1:1 pid=82432 runtime=647100 [ns]

2.function tracer

2.1 latency format

echo function > /sys/kernel/tracing/current_tracer
echo 1 >  /sys/kernel/tracing/options/latency-format
echo 1 > /sys/kernel/tracing/tracing_onls -ltrecho 0 > /sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > ftrace.log
# tracer: function
#
# function latency trace v1.1.5 on 6.8.0-44-generic
# --------------------------------------------------------------------
# latency: 0 us, #58212/58212, CPU#0 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)
#    -----------------
#    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)
#    -----------------
#
#                    _------=> CPU#
#                   / _-----=> irqs-off/BH-disabled
#                  | / _----=> need-resched
#                  || / _---=> hardirq/softirq
#                  ||| / _--=> preempt-depth
#                  |||| / _-=> migrate-disable
#                  ||||| /     delay
#  cmd     pid     |||||| time  |   caller
#     \   /        ||||||  \    |    /bash-2345      0...1. 6123us : mutex_unlock <-rb_simple_writebash-2345      0...1. 6125us : syscall_exit_to_user_mode_prepare <-syscall_exit_to_user_modebash-2345      0...1. 6126us : mem_cgroup_handle_over_high <-syscall_exit_to_user_modebash-2345      0...1. 6126us : blkcg_maybe_throttle_current <-syscall_exit_to_user_modebash-2345      0...1. 6127us : __rseq_handle_notify_resume <-syscall_exit_to_user_modebash-2345      0...1. 6127us : rseq_ip_fixup <-__rseq_handle_notify_resumebash-2345      0...1. 6127us : rseq_get_rseq_cs <-rseq_ip_fixup

2.2 non-latency format

echo function > /sys/kernel/tracing/current_tracer
echo 0 >  /sys/kernel/tracing/options/latency-format
echo 1 > /sys/kernel/tracing/tracing_onls -ltrecho 0 > /sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > ftrace.log
# tracer: function
#
# entries-in-buffer/entries-written: 62184/62184   #P:4
#
#                                _-----=> irqs-off/BH-disabled
#                               / _----=> need-resched
#                              | / _---=> hardirq/softirq
#                              || / _--=> preempt-depth
#                              ||| / _-=> migrate-disable
#                              |||| /     delay
#           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
#              | |         |   |||||     |         |bash-2345    [000] ...1.   461.750300: mutex_unlock <-rb_simple_writebash-2345    [000] ...1.   461.750304: syscall_exit_to_user_mode_prepare <-syscall_exit_to_user_modebash-2345    [000] ...1.   461.750305: mem_cgroup_handle_over_high <-syscall_exit_to_user_modebash-2345    [000] ...1.   461.750305: blkcg_maybe_throttle_current <-syscall_exit_to_user_modebash-2345    [000] ...1.   461.750305: __rseq_handle_notify_resume <-syscall_exit_to_user_modebash-2345    [000] ...1.   461.750306: rseq_ip_fixup <-__rseq_handle_notify_resumebash-2345    [000] ...1.   461.750306: rseq_get_rseq_cs <-rseq_ip_fixup

3.function_graph tracer

这个tracer下,default是没有显式时间戳的,需要设置 funcgraph-abstime 来展示系统启动的时间戳。如下:

echo function_graph > /sys/kernel/tracing/current_tracer
echo 1 >  /sys/kernel/tracing/options/latency-format
echo 1 > /sys/kernel/tracing/tracing_onls -ltrecho 0 > /sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > ftrace1.log
# tracer: function_graph
#
# function_graph latency trace v1.1.5 on 6.8.0-44-generic
# --------------------------------------------------------------------
# latency: 0 us, #151138/51805454, CPU#0 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)
#    -----------------
#    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)
#    -----------------
#
#      _-----=> irqs-off
#     / _----=> need-resched
#    | / _---=> hardirq/softirq
#    || / _--=> preempt-depth
#    ||| /
# CPU||||     DURATION                  FUNCTION CALLS
# |  ||||      |   |                     |   |   |   |1)  d..1. |   0.193 us    |              } /* idle_cpu */1)  d..2. |   0.186 us    |              cpu_util();1)  d..2. |   0.204 us    |              idle_cpu();1)  d..2. |   0.196 us    |              update_sd_pick_busiest();1)  d..2. |   0.182 us    |              cpu_util();1)  d..2. |   0.188 us    |              idle_cpu();

3.1 latency format + abstime + proc

echo function_graph > /sys/kernel/tracing/current_tracer
echo 1 >  /sys/kernel/tracing/options/latency-format
echo funcgraph-abstime > /sys/kernel/tracing/trace_options
echo funcgraph-proc > /sys/kernel/tracing/trace_optionsecho 1 > /sys/kernel/tracing/tracing_onls -ltrecho 0 > /sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > ftrace.log
# tracer: function_graph
#
# function_graph latency trace v1.1.5 on 6.8.0-44-generic
# --------------------------------------------------------------------
# latency: 0 us, #127921/359709, CPU#0 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)
#    -----------------
#    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)
#    -----------------
#
#                                       _-----=> irqs-off
#                                      / _----=> need-resched
#                                     | / _---=> hardirq/softirq
#                                     || / _--=> preempt-depth
#                                     ||| /
#     TIME        CPU  TASK/PID       ||||     DURATION                  FUNCTION CALLS
#      |          |     |    |        ||||      |   |                     |   |   |   |8815.427815 |     0)    ls-54057    |  ..... |   0.312 us    |          } /* taskstats_exit */8815.427815 |     0)    ls-54057    |  ...1. |               |          exit_mm() {8815.427816 |     0)    ls-54057    |  ...1. |               |            exit_mm_release() {8815.427816 |     0)    ls-54057    |  ...1. |               |              futex_exit_release() {8815.427816 |     0)    ls-54057    |  ...1. |               |                mutex_lock() {8815.427816 |     0)    ls-54057    |  ...1. |   0.189 us    |                  __cond_resched();8815.427817 |     0)    ls-54057    |  ..... |   0.540 us    |                }8815.427817 |     0)    ls-54057    |  ...1. |   0.201 us    |                _raw_spin_lock_irq();8815.427817 |     0)    ls-54057    |  d..2. |   0.196 us    |                _raw_spin_unlock_irq();8815.427817 |     0)    ls-54057    |  ...1. |   0.343 us    |                futex_cleanup();8815.427818 |     0)    ls-54057    |  ...1. |   0.191 us    |                mutex_unlock();8815.427818 |     0)    ls-54057    |  ..... |   2.477 us    |              }8815.427819 |     0)    ls-54057    |  ...1. |               |              mm_release() {8815.427819 |     0)    ls-54057    |  ...1. |   0.201 us    |                uprobe_free_utask();8815.427819 |     0)    ls-54057    |  ...1. |   0.190 us    |                shstk_free();8815.427820 |     0)    ls-54057    |  ..... |   1.065 us    |              }8815.427820 |     0)    ls-54057    |  ..... |   4.096 us    |            }

3.2 non-latency format + abstime + proc

echo function_graph > /sys/kernel/tracing/current_tracer
echo 0 >  /sys/kernel/tracing/options/latency-format
echo funcgraph-abstime > /sys/kernel/tracing/trace_options
echo funcgraph-proc > /sys/kernel/tracing/trace_optionsecho 1 > /sys/kernel/tracing/tracing_onls -ltrecho 0 > /sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > ftrace.log
# tracer: function_graph
#
#     TIME        CPU  TASK/PID         DURATION                  FUNCTION CALLS
#      |          |     |    |           |   |                     |   |   |   |9016.683071 |     2)   sshd-39581   |   0.195 us    |                    } /* update_min_vruntime */9016.683071 |     2)   sshd-39581   |   4.395 us    |                  } /* dequeue_entity */9016.683071 |     2)   sshd-39581   |   0.195 us    |                  hrtick_update();9016.683071 |     2)   sshd-39581   | + 19.649 us   |                } /* dequeue_task_fair */9016.683072 |     2)   sshd-39581   |               |                pick_next_task() {9016.683072 |     2)   sshd-39581   |               |                  pick_next_task_fair() {9016.683072 |     2)   sshd-39581   |               |                    newidle_balance() {9016.683072 |     2)   sshd-39581   |   0.194 us    |                      __rcu_read_lock();9016.683073 |     2)   sshd-39581   |   0.192 us    |                      __msecs_to_jiffies();9016.683073 |     2)   sshd-39581   |   0.191 us    |                      __rcu_read_unlock();9016.683074 |     2)   sshd-39581   |   1.399 us    |                    }9016.683074 |     2)   sshd-39581   |   1.813 us    |                  }9016.683074 |     2)   sshd-39581   |               |                  put_prev_task_fair() {9016.683074 |     2)   sshd-39581   |               |                    put_prev_entity() {9016.683074 |     2)   sshd-39581   |   0.193 us    |                      check_cfs_rq_runtime();9016.683075 |     2)   sshd-39581   |   0.559 us    |                    }9016.683075 |     2)   sshd-39581   |               |                    put_prev_entity() {9016.683075 |     2)   sshd-39581   |   0.193 us    |                      check_cfs_rq_runtime();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1541571.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

堆-使用offer创建堆和使用heapify创建堆的时间复杂度+堆排序

一、创建堆的时间复杂度比较 1、使用offer创建堆&#xff1a;时间复杂度为&#xff0c;其中n为满二叉树的结点数 核心代码&#xff1a; /*** 上浮* param childIndex*/private void floatUp(int childIndex){int parentIndexgetParentIndex(childIndex);int currIndexchildI…

AI大模型基础概念

什么是人工智能&#xff1f; 人工智能 (AI) 是一种使计算机和机器能够模拟人类智能和解决问题能力的技术。 人工智能 (AI) 可以单独使用或与其他技术&#xff08;例如&#xff0c;传感器、地理定位、机器人&#xff09;相结合&#xff0c;执行原本需要人类智能或人工干预的任…

【Linux篇】Http协议(1)(笔记)

目录 一、http基本认识 1. Web客户端和服务器 2. 资源 3. URI 4. URL 5. 事务 6. 方法 7. 状态码 二、HTTP报文 1. 报文的流动 &#xff08;1&#xff09;流入源端服务器 &#xff08;2&#xff09;向下游流动 2. 报文语法 三、TCP连接 1. TCP传输方式 2. TCP连…

细说渗透测试:阶段、流程、工具和自动化开源方案

不知有多少“曾梦想仗剑走天涯”的网络与信息安全从业者&#xff0c;是因为渗透测试的初心而步入这个行业的。不过&#xff0c;您是否对渗透测试及其漏洞扫描的相关概念感到既熟悉又陌生呢&#xff1f;您是否觉得自己还停留在从工作实践中积累的感性认识呢&#xff1f;下面&…

AI论文写作PPT思维导图PC小程序开发

AI论文写作PPT思维导图PC小程序开发 AI智能PPT功能 一键生成PPT大纲、一键扩写大纲内容、单独扩写某个大纲内容、一键生成内容关键词、单项内容关键词生成、新增大纲项、修改大纲、删除大纲、选择PPT模板、单页模板一键切换、在线编辑模板&#xff1b;支持导出PPTX、JPEG、&am…

Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 DiffUtil 是一个用于计算两个列表之间差异的实用程序类&#xff0c;它可以帮助 RecyclerView 以更高效的方式更新数据。使用 DiffUtil 可以减少…

《线性代数》笔记

文章目录 1 行列式1.1 克拉默法则1.2 基本性质1.3 余子式 M i j M_{ij} Mij​1.4 代数余子式 A i j ( − 1 ) i j ⋅ M i j A_{ij} (-1)^{ij} \cdot M_{ij} Aij​(−1)ij⋅Mij​1.5 具体型行列式计算&#xff08;化为基本型&#xff09;1.5.1 主对角线行列式&#xff1a;主…

[SAP ABAP] 创建数据元素

我们可以使用事务码SE11创建数据元素 输入要创建的数据类型的名称&#xff0c;然后点击创建 选择数据元素并进行确定 输入简短描述并为数据元素分配一个域&#xff0c;会自动带出数据类型以及长度 创建域可参考该篇文章 创建域https://blog.csdn.net/Hudas/article/details/…

【C++】模拟实现二叉搜索(排序)树

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:实战项目集 ⚙️操作环境:Visual Studio 2022 目录 一.了解项目功能 二.逐步实现项目功能模块及其逻辑详解 &#x1f4cc;实现BSTreeNode类模板 &#x1f38f;构造BSTreeNode类成员变量 &#x1f38f;实现BSTreeNode类构…

胤娲科技:马斯克放大招,盲人也能“开眼看世界”你准备好了吗?

导读前沿&#xff1a; 嘿&#xff0c;朋友们&#xff0c;想象一下&#xff0c;你突然发现自己变成了一部老式黑白电视机的观众&#xff0c;屏幕模糊&#xff0c;色彩全无&#xff0c;是不是感觉人生瞬间失去了“高清”模式&#xff1f; 但别急&#xff0c;科技界的“魔术师”马…

CDVAE项目环境配置

CDVAE环境配置 1. 系统环境2. 设置环境变量3. 配置环境变量4. 安装CDVAE虚拟环境5. 资料下载 1. 系统环境 系统环境&#xff1a;Ubuntu22.04GeForce RTX 3090cuda12.6&#xff08;cuda版本11.1以上均适用&#xff09;。 2. 设置环境变量 先按照CDVAE中描述的设置环境变量。 …

Ubuntu 20.04 内核升级后网络丢失问题的解决过程

在 Ubuntu 系统中&#xff0c;内核升级是一个常见的操作&#xff0c;旨在提升系统性能、安全性和兼容性。然而&#xff0c;有时这一操作可能会带来一些意外的副作用&#xff0c;比如导致网络功能的丧失。 本人本来是想更新 Nvidia 显卡的驱动&#xff0c;使用 ubuntu-drivers …

element-ui 日期选择器禁用某段特定日期

element-ui 日期选择器设置禁用日期 效果图如下: 2024-09-01 到2024-09-18之间的日期都不可选 2024-01-01之前的日期都不可选 官方文档中 picker-options 相关的介绍 实现功能: ​ 某仓库有限制最大可放置资产数量,且资产出借和存放都有记录。由于线下仓库资产出借和购…

c++实现类

Date类的实现-->(里面涉及类&#xff0c;this指针&#xff0c;引用&#xff0c;复用&#xff0c;运算符重载&#xff0c;友元函数&#xff0c;) Date类的实现 本章节我们将根据前面所学过的知识&#xff0c;综合运用来完成一个日期类代码的实现&#xff0c;里面的知识点也能…

yolo自动化项目实例解析(二)ui页面整理 1.78

我们在上一章整理main.py 的if __name__ __main__: 内容还留下面这一段&#xff0c; from PyQt5.QtWidgets import *from lanrenauto.moni.moni import *from PyQt5.QtGui import *app QApplication(sys.argv) # 初始化Qt应用ratio screen_width / 2560 # 分辨率比例# 设…

简单题69.x的平方根 (Java)20240919

问题描述&#xff1a; java代码&#xff1a; class Solution {public int mySqrt(int x) {if (x < 2) {return x; // 0 和 1 的平方根分别是它们自己}int left 2; // 从2开始&#xff0c;因为0和1已经处理了int right x / 2; // 最大可能的平方根不会超过 x / 2int mid;w…

【6DRepNet360全范围头部姿态估计onnxruntime推理】

6DRepNet360全范围头部姿态估计 标题摘要关键词主要贡献方法概述实验结论模型转换和onnxruntime推理模型和代码下载可视化结果代码 这篇论文的核心内容是关于一种用于全范围旋转头部姿态估计的新方法。以下是关键点的总结&#xff1a; 标题 Towards Robust and Unconstrained…

1.Spring-容器-注册

一、Bean和获取Bean &#xff08;1&#xff09;创建IoC容器&#xff1a; SpringApplication.run(类名.class, args); ConfigurableApplicationContext ioc SpringApplication.run(Spring01IocApplication.class, args); &#xff08;2&#xff09;将对象注册到IoC容器中&am…

粘接黑科技标杆专业展会-ASE CHINA 2024 震撼开幕!

2024年9月19日&#xff0c;第27届国际胶粘剂及密封剂展暨第19届国际胶粘带与薄膜展&#xff08;以下简称ASE CHINA 2024&#xff09;在上海新国际博览中心N3-N4-N5馆璀璨揭幕。ASE CHINA作为粘接新材料产业风向标&#xff0c;历经27年的辛苦耕耘&#xff0c;与业界同仁并肩而行…

sql执行流程经典案例分析

现在有联合索引(a,b),select* form tb where b xx group by a执行流程是什么样子的? CREATE TABLE IF NOT EXISTS test(id INT(10) NOT NULL AUTO_INCREMENT COMMENT主键,a INT(10) NULL,b INT(10) NULL,PRIMARY KEY(id),INDEX idx_a_b(a,b))ENGINE INNODB;INSERT INTO test…