记录:Ftrace/systrace 功能使用

1. Ftrace 功能描述

1.1 基本原理

trace的核心思想是跟踪记录;
ftrace即linux kernel中实现的一套trace机制,可以记录各个function、event等处理的时长和调用顺序;
基于ftrace,Android拓展为systrace功能记录系统主要事件的处理path(alios 也有类似的atrace);

1.2 用途

  1. 学习系统功能模块的调用path跟踪;
  2. 系统各个阶段的耗时情况跟踪优化;
  3. 对display模块中抖动、丢帧问题排查;

1.3 官方文档

  1. android:https://source.android.com/devices/tech/debug/ftrace#dftrace
  2. kernel:https://www.kernel.org/doc/Documentation/trace/ftrace.txt

2. 配置使能

2.1 配置项

CONFIG_IRQSOFF_TRACER=y
CONFIG_PREEMPTIRQ_EVENTS=y
CONFIG_PREEMPT_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_HWLAT_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_PROFILE_ALL_BRANCHES=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACER=y
CONFIG_FUNCTION_PROFILER=y

2.2 配置方法

配置config文件,有两种方式:

  1. 知道具体添加哪些config,则直接找到对应的config文件,手动写入,然后重新build;
    /kernel/arch/arm/configs/***
    /kernel/arch/arm64/configs/***
  2. 通过make menuconfig的方式写入
2.2.1 make menuconfig 配置

第一级选择 kernel hacking:
kernel haking
第二级选择 Tracer:
tracer

第三级根据需要选择:
all

2.3 配置问题记录

一般来说我们实际项目中,都会根据HW资源另写一个config文件,这时候如果直接使用make menuconfig,load对应文件进来修改后save,做git diff对比,会发现整个文件都不大一样了;

对于这种情况:

  1. 我们的做法是修改后将原来的 .config与生成后 .config做对比,将差异重新写到我们所需要的文件中;
  2. 或者简单的做法,直接手动修改对应的config文件;

2.4 如何确认修改成功

  1. 查看build出来的.config文件
  2. 查看机器内的config文件: adb sh
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值