高通dump ftrace & kernelshark使用
简介
高通 ramdump 可以解析出 ftrace,方便用于追踪 快省稳 问题。
kernelshark 是一个可以查看 trace event 的图形化工具,方便梳理和观察内核微观行为。
trace-cmd 是设置读取 ftrace 的命令行工具,kernelshark既可以记录数据,也可以图形化分析结果。
在 /sys/kernel/debug/tracing/events 终端打开所需要监控的 trace event
trace-cmd 编译安装
下载源码
git clone https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
trace-cmd编译安装:
make install--------------------------只安装trace-cmd
crash tool 编译安装
- crash tool 下载: https://people.redhat.com/anderson/
- crash tool 使用:https://people.redhat.com/anderson/crash_whitepaper/
但这里高通 rdp 工具使用 crash 来处理 dump 里的 ftrace rawdata,再使用 trace-cmd 来把 rawdata 转换为 Ftrace.txt.
下载源码后直接编译:
make target=ARM64
make extensions
rdp 解析 ftrace
把上面编译出来的路径写入 linux-ramdump-parser-v2/local_settings.py
trace_ext = "/home/baihaowen/3T_DISK/tools/crash/crash/extensions/trace.so"
crashtool = "/home/baihaowen/3T_DISK/tools/crash/crash/crash"
tracecmdtool = "/usr/bin/trace-cmd"
解析 dump ftrace 需要加上 --dump-ftrace 选项
sudo python ramparse.py --vmlinux /debug/apps/vmlinux --auto-dump /Port_NPI56/ -o /Port_NPI56/rdpout/ --everything --force-hardware msmnile -x --ipc-skip --dump-ftrace
rdp 解析 ftrace 成功: rdpout/dmesg_TZ.txt
----------begin FtraceParser----------
/home/baihaowen/3T_DISK/tools/crash/crash/crash
args to crash: ['/home/baihaowen/3T_DISK/tools/crash/crash/crash', '--kaslr=0xf5b600000', '--machdep', 'kimage_voffset=0xffffff8ee3600000', '/Port_NPI56/DDRCS0_0.BIN@0x80000000,/Port_NPI56/DDRCS0_1.BIN@0x100000000,/Port_NPI56/DDRCS1_0.BIN@0x180000000,/Port_NPI56/DDRCS1_1.BIN@0x200000000,', '/debug/apps/vmlinux', '-p 4096', '-i /home/baihaowen/3T_DISK/tools/qcom-tools/M1971_rdp_tools/linux-ramdump-parser-v2/tmp/973QAFV3KF2XS_NPI56_dump_60H_20190906102228/tmpmInKQ6']
crash standard output recorded.
Ftrace successfully extracted.
trace-cmd standard error recorded.
------------end FtraceParser----------
使用 kernelshark
ubuntu 直接安装:
sudo apt-get install kernelshark
把 rdpout 目录生成的 rawtracedata 改名字为 rawtracedata.dat,再打开 kernelshark 载入 rawtracedata.dat

kernelshark 的使用:file:///usr/share/kernelshark/html/index.html (安装后)
如果单单是 trace event 文本,巨量的 trace 信息根本无法直观分析。 现在使用 kernelshark,io writeback、cpu schedule、memory alloc/reclaim 事件都可以图形化查看。
高通dump ftrace & kernelshark使用的更多相关文章
- 高通平台 lcd driver 调试小结
一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2 开发环境 And ...
- 高通平台的bootloader过程【转】
====================基本知识=======================LK是(L)ittle (K)ernel的缩写.高通平台android普遍采用LK作为其bootloade ...
- 高通 MSM8K bootloader 之四: ramdump
前面说过高通平台,系统crash发生时,抓取crash ramdump非常重要,否则很难定位crash原因. 平台默认抓取ramdump的方法都有很强的局限性,如下: 1.PC端工具QPST提供的 M ...
- 高通 MSM8K bootloader : SBL1 .
一. MSM8K Boot Flow 图1: 高通MSM8K平台bootloader启动流程基本类似,但具体各平台,比如MSM8974.MSM8916.MSM8994等,会有微小区别. 从上图,可以看 ...
- 高通android开发摘要
一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些参 ...
- Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt
高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...
- 高通 MSM8K bootloader之一: SBL1
MSM8K Boot Flow 转自:http://www.cnblogs.com/liang123/p/6325257.html http://blog.csdn.net/F ...
- linux驱动由浅入深系列:PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)
转自:http://blog.csdn.net/radianceblau/article/details/73229005 http://www.aiuxian.com/article/p-14142 ...
- 高通平台Bootloader启动流程【转】
本文转载自:http://blog.csdn.net/fang_first/article/details/49615631 ====================基本知识============= ...
- 最新内核3.4)Linux 设备树加载I2C client adapter 的流程(内核3.4 高通)【转】
转自:https://blog.csdn.net/lsn946803746/article/details/52515225 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转 ...
随机推荐
- 用jacoco统计JAVA项目测试代码覆盖率
一.概述 Jacoco 统计的是全量代码覆盖率.它不仅支持生成单元测试的覆盖率,也支持监控生成接口测试,功能测试的覆盖率. 在新一代精准测试技术流的影响中,各大型单位对覆盖率的追求越来越迫切.作为一款 ...
- ComfyUI插件:ComfyUI Impact 节点(三)
前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器.细节强化器.预览桥.通配符.Hook.图片发送器.图片 ...
- 【OracleDB】 09 创建和管理表
Oracle常见的数据库对象 - 表 基本的数据存储集合,行与列组成 - 视图 抽取的逻辑集合 - 序列 提供规律性的数值 - 索引 提高查询效率 - 同义词 对象别名 TABLE 表 用户定义的表: ...
- 【转载】 浅谈PyTorch的可重复性问题(如何使实验结果可复现)
原文地址: https://www.zhangshengrong.com/p/9MNlDK09NJ/ ================================================ ...
- 分段树(segment tree)的实现 —— 强化学习中 "优先级回放机制" 的重要组成部分
分段树(segment tree)是强化学习中 "优先级回放机制" 的重要组成部分.本文针对分段树(segment tree)的一个开源版本的实现来进行分析,代码地址: https ...
- C# 委托和闭包
前言 本文只是为了复习,巩固,和方便查阅,一些知识点的详细知识会通过相关链接和文献标记出来. 委托是什么 大部分的解释是 委托是一个对方法的引用,可以不用自己执行,而是转交给其他对象.就好比每天都有一 ...
- Java中如何以文本方式输出"\"
1. 转义符使用 "\"在 java中是一个转义符,只要有它的出现往往有他独特的意义,如下图: 那么,在输出文本时,需要输出"\"怎么办呢,其实很简单,只要多加 ...
- 14-canvas绘制柱状图
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...
- 从0写一个电话号码管理的C入门项目【适合初学者】
0.前言 上次发了一个嵌入式的学习路线,很多粉丝问我各个阶段的入门项目,其中第二阶段的<基于socket聊天室>写了4篇循序渐进的文章,而第一阶段的<电话号码本管理>也非常想要 ...
- 6. 从0开始学ARM-异常及中断处理、异常向量表、swi
一.异常(Exception) 异常是理解CPU运转最重要的一个知识点,几乎每种处理器都支持特定异常处理,中断是异常中的一种. 有时候我们衡量一个操作系统的时候实时性就是看os最短响应中断时间以及单位 ...