简介

高通 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 编译安装

但这里高通 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使用的更多相关文章

  1. 高通平台 lcd driver 调试小结

    一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2  开发环境 And ...

  2. 高通平台的bootloader过程【转】

    ====================基本知识=======================LK是(L)ittle (K)ernel的缩写.高通平台android普遍采用LK作为其bootloade ...

  3. 高通 MSM8K bootloader 之四: ramdump

    前面说过高通平台,系统crash发生时,抓取crash ramdump非常重要,否则很难定位crash原因. 平台默认抓取ramdump的方法都有很强的局限性,如下: 1.PC端工具QPST提供的 M ...

  4. 高通 MSM8K bootloader : SBL1 .

    一. MSM8K Boot Flow 图1: 高通MSM8K平台bootloader启动流程基本类似,但具体各平台,比如MSM8974.MSM8916.MSM8994等,会有微小区别. 从上图,可以看 ...

  5. 高通android开发摘要

    一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些参 ...

  6. Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt

    高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...

  7. 高通 MSM8K bootloader之一: SBL1

    MSM8K Boot Flow  转自:http://www.cnblogs.com/liang123/p/6325257.html            http://blog.csdn.net/F ...

  8. linux驱动由浅入深系列:PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)

    转自:http://blog.csdn.net/radianceblau/article/details/73229005 http://www.aiuxian.com/article/p-14142 ...

  9. 高通平台Bootloader启动流程【转】

    本文转载自:http://blog.csdn.net/fang_first/article/details/49615631 ====================基本知识============= ...

  10. 最新内核3.4)Linux 设备树加载I2C client adapter 的流程(内核3.4 高通)【转】

    转自:https://blog.csdn.net/lsn946803746/article/details/52515225 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转 ...

随机推荐

  1. 用jacoco统计JAVA项目测试代码覆盖率

    一.概述 Jacoco 统计的是全量代码覆盖率.它不仅支持生成单元测试的覆盖率,也支持监控生成接口测试,功能测试的覆盖率. 在新一代精准测试技术流的影响中,各大型单位对覆盖率的追求越来越迫切.作为一款 ...

  2. ComfyUI插件:ComfyUI Impact 节点(三)

    前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器.细节强化器.预览桥.通配符.Hook.图片发送器.图片 ...

  3. 【OracleDB】 09 创建和管理表

    Oracle常见的数据库对象 - 表 基本的数据存储集合,行与列组成 - 视图 抽取的逻辑集合 - 序列 提供规律性的数值 - 索引 提高查询效率 - 同义词 对象别名 TABLE 表 用户定义的表: ...

  4. 【转载】 浅谈PyTorch的可重复性问题(如何使实验结果可复现)

    原文地址: https://www.zhangshengrong.com/p/9MNlDK09NJ/ ================================================ ...

  5. 分段树(segment tree)的实现 —— 强化学习中 "优先级回放机制" 的重要组成部分

    分段树(segment tree)是强化学习中 "优先级回放机制" 的重要组成部分.本文针对分段树(segment tree)的一个开源版本的实现来进行分析,代码地址: https ...

  6. C# 委托和闭包

    前言 本文只是为了复习,巩固,和方便查阅,一些知识点的详细知识会通过相关链接和文献标记出来. 委托是什么 大部分的解释是 委托是一个对方法的引用,可以不用自己执行,而是转交给其他对象.就好比每天都有一 ...

  7. Java中如何以文本方式输出"\"

    1. 转义符使用 "\"在 java中是一个转义符,只要有它的出现往往有他独特的意义,如下图: 那么,在输出文本时,需要输出"\"怎么办呢,其实很简单,只要多加 ...

  8. 14-canvas绘制柱状图

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  9. 从0写一个电话号码管理的C入门项目【适合初学者】

    0.前言 上次发了一个嵌入式的学习路线,很多粉丝问我各个阶段的入门项目,其中第二阶段的<基于socket聊天室>写了4篇循序渐进的文章,而第一阶段的<电话号码本管理>也非常想要 ...

  10. 6. 从0开始学ARM-异常及中断处理、异常向量表、swi

    一.异常(Exception) 异常是理解CPU运转最重要的一个知识点,几乎每种处理器都支持特定异常处理,中断是异常中的一种. 有时候我们衡量一个操作系统的时候实时性就是看os最短响应中断时间以及单位 ...