• 2024-12-02Linux内核ftrace的使用
    文章目录ftrace使用一、ftrace的功能与用途二、ftrace的实现原理三、ftrace的使用步骤1.查看tracer:通过查看available\_tracers文件,了解当前内核中可用的插件追踪器2.选择tracer3.设置参数和过滤器4.开启追踪5.读取追踪结果四、ftrace的常用traceravailable_tracer
  • 2024-12-11什么是 Java 的 PLAB(Promotion Local Allocation Buffer)?
    什么是Java的PLAB(PromotionLocalAllocationBuffer)?PLAB全称是PromotionLocalAllocationBuffer,是Java垃圾回收机制中的一个重要概念,主要用于优化对象晋升(Promotion)的性能。PLAB是在垃圾回收器处理内存分配时,为每个线程分配的一块缓冲区域,专门用于临时存放从新生代晋
  • 2024-08-27Android systrace环境的搭建和使用
    一、systrace简介Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android 关键子系统(如SurfaceFlinger/SystemServer/Kernel/Input/Display等Framework部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。S
  • 2024-08-08ftrace的trace_options
    ftrace中的trace_options选项用于控制追踪数据的收集和显示方式。你可以通过/sys/kernel/debug/tracing/trace_options文件来设置这些选项。每个选项代表了不同的追踪行为或输出格式。以下是一些常见的trace_options选项及其含义:overwrite:含义:当启用此选项时,如果缓冲
  • 2024-08-07Linux 利用 ftrace 分析内核调用
    目录一、概述二、ftrace的使用1、常用信息2、指定ftrace跟踪器3、设置要跟踪的函数4、ftrace的开关5、function跟踪程序6、function_graph跟踪程序7、函数过滤器8、跟踪事件三、trace-cmd的使用1、常见命令2、常用选项2.1列出可用的追踪器2.2跟踪特定进程的函
  • 2024-08-02使用ftrace查找Kernel启动阶段的延时原因
    查找Kernel启动阶段的延时原因1.确保内核配置了如下选项CONFIG_FTRACE:"Tracers"CONFIG_FUNCTION_TRACER:"KernelFunctionTracer"CONFIG_FUNCTION_GRAPH_TRACER:"KernelFunctionGraphTracer"2.配置functiongraphtrace到commandlinetracing_thresh=200f
  • 2024-07-28Linux内核-异常输出调用栈CallTrace与Ftrace工具集
    1dump_stack函数打印内核调用堆栈。举个例子:我们定义四个函数aaa、bbb、ccc、ddd,然后bbb中调用aaa,ccc中调用bbb,ddd函数谁都不调用。在入口函数中,我们调用ccc与ddd函数,看看堆栈打印效果如何:#include<linux/module.h>#include<linux/kernel.h>#include<linux/init.h>#incl
  • 2024-07-14高通dump ftrace & kernelshark使用
    简介高通ramdump可以解析出ftrace,方便用于追踪快省稳问题。kernelshark是一个可以查看traceevent的图形化工具,方便梳理和观察内核微观行为。trace-cmd是设置读取ftrace的命令行工具,kernelshark既可以记录数据,也可以图形化分析结果。在/sys/kernel/debug/tracing/
  • 2024-05-25tracer ftrace笔记(4)—— events.rst 翻译
    基于msm-5.4Android-12一、翻译=============事件追踪=============:作者:TheodoreTs'o:更新:李泽凡和汤姆·扎努西 1.简介===============无需创建自定义内核模块即可使用跟踪点(请参阅Documentation/trace/tracepoints.rst)来使用事件跟踪基础设施注册探测函数。并非
  • 2024-05-21Hooking linux内核函数(二):如何使用Ftrace hook函数
    本文是《HookingLinuxKernelFunctions,Part2:HowtoHookFunctionswithFtrace》的翻译文章前言Ftrace是一个用于跟踪Linux内核函数的Linux内核框架。但是,当我们尝试启用系统活动监控以阻止可疑进程时,我们的团队设法找到了一种使用ftrace的新方法。事实证明,ftrace允许
  • 2024-04-30ftrace uprobe原理和功能
    原文:https://blog.csdn.net/u012489236/article/details/127954817官网:https://www.kernel.org/doc/html/latest/trace/uprobetracer.htmlkprobe可以实现动态内核的注入,基于中断的方法在任意指令中插入追踪代码,并且通过pre_handler/post_handler去接收回调。另一个kprobe的同
  • 2024-04-11tracer ftrace笔记(23)—— 上层trace打印流程-TODO
    1.ATRACE_INT打印不出来分析#defineATRACE_INT(name,value)atrace_int(ATRACE_TAG,name,value)///system/core/libcutils/include/cutils/trace.hstaticinlinevoidatrace_int(uint64_ttag,constchar*name,int32_tvalue){ if(CC_UNLIKELY(atrace_is_tag_enabl
  • 2024-03-25Perfetto Trace抓取
    1.Perfetto简介Perfetto是一个用于Android系统的性能跟踪工具,可以帮助开发者分析系统性能和调试问题。Perfetto是Android10中引入的全新平台级跟踪工具。这是适用于Android、Linux和Chrome的更加通用和复杂的开源跟踪项目。在低于AndroidR的版本上面默认是
  • 2024-02-13perf与ftrace
    ftraceftrace是一种调试工具,用于了解Linux内核中的情况。如需详细了解ftrace高级功能,请参阅ftrace文档:/Documentation/trace/ftrace.txtFtrace的设计目标简单,本质上是一种静态代码插装技术,不需要支持某种编程接口让用户自定义trace行为。静态代码插装技术更加可靠,不会
  • 2024-01-23【一文秒懂】Ftrace系统调试工具使用终极指南
    【一文秒懂】Ftrace系统调试工具使用终极指南1、Ftrace是什么Ftrace是FunctionTrace的简写,由StevenRostedt开发的,从2008年发布的内核2.6.27中开始就内置了。Ftrace是一个系统内部提供的追踪工具,旨在帮助内核设计和开发人员去追踪系统内部的函数调用流程。随着Ftrace的
  • 2023-12-24将perf跟funcgraph-retval结合起来使用
    作者pengdonglin137@163.com概述下面是之前写的使用funcgraph-retval的文章:https://www.cnblogs.com/pengdonglin137/p/17126952.htmlhttps://www.cnblogs.com/pengdonglin137/p/17723412.html上面的文章里,都是直接通过命令行配置ftrace来使用的,过程稍微有些繁琐,linux提供
  • 2023-10-10ftrace在应用上的使用
    之前介绍通过命令行配置和使用ftrace功能,但是实际中,我们也会希望抓C/C++程序中某段代码的调度情况。笔者前不久就遇到这种问题,某个函数调用时延概率超过100ms,是为什么?这时候就需要在他们代码中使能ftrace抓执行此函数时候,任务的调度情况。观察某段代码执行过程中的情况,ftrace提供
  • 2023-08-19tracer ftrace笔记(20)—— Systrace中tag汇总
    一、视频显示1.HW_VSYNC_ON_XXX(1)类型布尔值,1表示HWVSYNC信号开关被打开,0表示开关被关闭。(2)时机HWVYSNC硬件信号被打开和关闭的时候。(3)解释HW_VSYNC_ON_XXX后面的XXX一般是一串数字,代表的是displayid,如果你的机器有外接了显示器,那么可以通过displayid
  • 2023-08-04tracer ftrace笔记(18)—— 待解问题汇总
    1.长时间卡在MSG_WINDOW_FOCUS_CHANGED条目中publicvoidhandleMessage(Messagemsg)//android/view/ViewRootImpl.javaTrace.traceBegin(Trace.TRACE_TAG_VIEW,getMessageName(msg));//这里打印条目有MSG_WINDOW_FOCUS_CHANGEDhandleMessageImpl(msg);
  • 2023-06-11ftrace学习 —— user_events的用法
    参考https://docs.kernel.org/trace/user_events.html测试程序samples/user_events/example.ctools/testing/selftests/user_events/ftrace_test.c正文通过user_event可以实现对应用程序的跟踪,类似linux内核中的tracepoint那样。相似的方法还有借助/sys/kernel/debug/tracin
  • 2023-06-05ftrace irqs跟踪器
    当中断被关闭(俗称关中断)了,CPU就不能响应其他的事件,如果这时有一个鼠标中断,要在下一次开中断时才能响应这个鼠标中断,这段延迟称为中断延迟。向current_tracer文件写入irqsoff字符串即可打开irqsoff来跟踪中断延迟。[root@linuxtracing]#pwd/sys/kernel/debug/tracing[roo
  • 2023-05-29转载-奇小葩-深入ftrace kprobe原理解析
    原文链接:https://blog.csdn.net/u012489236/article/details/127942216 Linuxkrpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术,利用kprobe技术,内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信
  • 2023-05-29转载-奇小葩- 深入ftrace uprobe原理和功能介绍
    原文链接:https://blog.csdn.net/u012489236/article/details/127954817 上一章我们学习了,kprobe可以实现动态内核的注入,基于中断的方法在任意指令中插入追踪代码,并且通过pre_handler/post_handler去接收回调。另一个kprobe的同族是kretprobe,只不过是针对函数级别的内核