ftrace stack trace

2023-10-07 07:38
文章标签 stack ftrace trace

本文主要是介绍ftrace stack trace,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内核栈大小是有限的,为了跟踪内核栈的使用情况,可以使用ftrace stack trace。使能和关闭方法:

echo 1  >  /proc/sys/kernel/stack_tracer_enabled
echo 0 >  /proc/sys/kernel/stack_tracer_enabled

stack trace的信息输出通过如下的节点上送给用户态:

/sys/kernel/debug/tracing/stack_max_size
/sys/kernel/debug/tracing/stack_trace 
/sys/kernel/debug/tracing/stack_trace_filter

使能跟踪一段时间后,可以查看最大栈占用情况,stack_max_size这里打印的是最长栈的size。而在stack_trace 中打印的是最长栈的每个函数占用栈大小的情况,注意这里也只会记录的最长的栈情况。

       Depth    Size   Location    (45 entries)-----    ----   --------0)     3600      64   __accumulate_pelt_segments+0x5/0x901)     3536     104   __update_load_avg_se+0x20f/0x2f02)     3432      64   update_load_avg+0x4ac/0x6003)     3368      72   enqueue_entity+0x5e/0x6f04)     3296      80   enqueue_task_fair+0x9d/0x4e05)     3216      40   activate_task+0x5f/0xc06)     3176      48   ttwu_do_activate+0x49/0x707)     3128     104   try_to_wake_up+0x1d1/0x5508)     3024      16   wake_up_process+0x15/0x209)     3008      64   insert_work+0xa8/0xd010)     2944      80   __queue_work+0x154/0x40011)     2864      16   __queue_delayed_work+0x66/0x9012)     2848      72   mod_delayed_work_on+0x5e/0x9013)     2776      16   kblockd_mod_delayed_work_on+0x1b/0x2014)     2760      48   __blk_mq_delay_run_hw_queue+0x7c/0x16015)     2712      48   blk_mq_run_hw_queue+0x90/0x11016)     2664      64   blk_mq_sched_insert_requests+0x77/0x10017)     2600     144   blk_mq_flush_plug_list+0x198/0x2e0

stack_trace_filter可以用来过滤一些函数,最对特定函数做跟踪。

这篇关于ftrace stack trace的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/156980

相关文章

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

Java-数据结构-栈和队列-Stack和Queue (o゚▽゚)o

文本目录: ❄️一、栈(Stack):     ▶ 1、栈的概念:   ▶ 2、栈的使用和自实现:      ☑ 1)、Stack():       ☑ 2)、push(E e):      ☑ 3)、empty():         ☑ 4)、peek(E e):        ☑ 5)、pop(E e):       ☑ 6)、size(E e):  ▶ 3、栈自实现的总代

c++stack和list 介绍

stack介绍 堆栈是一种容器适配器,专门设计用于在 LIFO 上下文(后进先出)中运行,其中元素仅从容器的一端插入和提取。 堆栈作为容器适配器实现,容器适配器是使用特定容器类的封装对象作为其基础容器 的类,提供一组特定的成员函数来访问其元素。元素从特定容器的 “back” 推送或弹出,这称为堆栈的顶部。 stack接口 stack() 构造空的栈 empty() 检测stack是否为

stack,queue, priority_queue

STL 中栈的使用方法(stack) #include <stack> 基本操作: push(x) 将x加入栈中,即入栈操作 pop() 出栈操作(删除栈顶),只是出栈,没有返回值 top() 返回第一个元素(栈顶元素) size() 返回栈中的元素个数 empty() 当栈为空时,返回 true STL 中队列的使用(queue) #i

Elastic Stack--ES集群加密及Kibana的RBAC实战

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 学习B站博主教程笔记:  最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—ElasticSearch+Logstash+Kibana精讲_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1VMW3e6Ezk/?sp

C++ STL-Stack容器概念及应用方法详解

1. 再谈栈 栈是一种先进后出的数据结构,而实现方式需要创建多个结构体,通过链式的方式进行实现,这是标准的栈的思路,而在STL中栈可以以更为简单的方式实现。 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。 栈中进入数据称为 — 入栈 push 栈中弹出数据称为 — 出

Elastic Stack--ES的DSL语句查询

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 学习B站博主教程笔记:  最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—ElasticSearch+Logstash+Kibana精讲_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1VMW3e6Ezk/?spm_

Elastic Stack-ES集群常用的API

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 学习B站博主教程笔记:  最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—ElasticSearch+Logstash+Kibana精讲_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1VMW3e6Ezk/?spm

用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化

概述 WWDC 24 一声炮响为我们送来 Swift 6.0 的同时,也颇为“低调”的推出了 SwiftData 2.0。在新版本的 SwiftData 中,苹果为其新增了多个激动人心的新特性,其中就包括历史记录追踪(History Trace)。 不过,历史记录追踪目前看起来似乎有些“白璧微瑕”,略微让人有些不爽。在这里就让我们看看如何利用 Swift 结构化并发中的异步序列(Asy

C/C++堆溢出(stack overflow)的解决

问题 堆溢出(stack overflow) 解决 (1)在VS里面设置 【属性】/【链接器】/【系统】/【堆栈保留大小】 (2)通过代码 //第一个值是堆栈的保留空间//第二个值是堆栈开始时提交的物理内存大小。堆栈改变为100M。#pragma comment(linker,"/STACK:102400000,1024000")