从零打造高通平台hexagon dsp profiling性能分析工具-9
前言
安卓领域已经有systrace、perfetto这些成熟的分析工具,但缺少dsp/cpu联合分析工具(甚至单纯dsp trace分析工具),高通官方有些工具(sysMon ETM,itrace,sdp)但都不好用或有严重bug。
可以利用Perfetto SDK api,在cpu fastrpc dsp调用前后实现注册trace events并触发events,实现事件记录。但dsp内部更细的marker事件,section start/end事件,dsp pmu信息需要通过fastrpc或async queue传回cpu端处理,比较麻烦。而且系统中pmu 只能有一个消费者,不支持多用户。
cpu pmu信息依托hexagon dsp sdk libs/itrace/inc/itrace_cpu_events_la.h中提供的event能力,还可以接入kernel ftrace及proc文件系统,想扩展也是可以的,最重要的底层数据接口都是有的,想抓一样可以抓到。
我现在做的新工具是为了解决itrace只能分析单任务的弊端,解其bug,实现多任务、多进程的cpu/dsp(htp,npu)/cache/ddr联合分析,聚焦多任务cpu调用dsp的时序分析功能、dsp内部多PD并发情况分析及ddr、cache等,有一个专门的进程来做pmu配置及消费,传统perfetto专长的内核分析、渲染掉帧分析我不涉及。
包打天下,大而全的工具比较难。
前面写了系列文章