OPTEE Gprof(GNU profile)

安全之安全(security²)博客目录导读

OPTEE调试技术汇总

目录

一、序言

二、Gprof使用

三、Gprof实现

[1、Call graph information](#1、Call graph information)

[2、PC distribution over time](#2、PC distribution over time)


一、序言

本文描述了如何使用gprof对TA进行概要分析。

配置选项CFG_TA_GPROF_SUPPORT=y使OP-TEE能够从在用户模式下运行并使用-pg编译的TA收集分析信息。一旦收集到,分析数据将会被格式化为gmon.out格式,通过RPC发送给tee- supplant,因此它们可以保存到磁盘,稍后由标准gprof工具进行处理和显示。

二、Gprof使用

使用CFG_TA_GPROF_SUPPORT=y构建OP-TEE OS。还可以设置CFG_ULIBS_MCOUNT=y来检测optee_os中包含的用户TA库(例如libutee和libutils)。

使用-pg构建用户TA,例如enable: CFG_TA_MCOUNT=y来检测整个用户TA。注意,instrumented ta有一个更大的.bss段。32位TA的内存开销是.text大小的1.36倍,64位TA的内存开销是.text大小的1.77倍(详细信息请参阅TA链接器脚本:TA /arch/arm/ TA .ld. s)。

正常运行应用程序。当最后一个会话退出时,tee- supplicant将分析数据写入/tmp/gmon-<ta_uuid>.out。如果该文件已经存在,则附加一个数字,如:gmon-<ta_uuid>.1.out。

在TA ELF文件上运行gprof,分析输出:gprof <ta_uuid>.elf gmon-<ta_uuid>.out。

三、Gprof实现

部分分析是在libutee中实现的。另一部分由伪ta (core/arch/arm/sta/gprof.c)在TEE内核中完成。收集两类数据:

1、Call graph information

当使用-pg开关编译TA源文件时,编译器会在每个函数序言中生成额外的代码,以调用检测入口点(__gnu_mcount_nc或_mcount,具体取决于体系结构)。每次调用一个instrumented的函数时,libutee记录一对程序计数器(一个是调用者,另一个是被调用者)以及调用图中这个特定弧线的次数。

2、PC distribution over time

当一个instrumented的TA启动时,libutee调用伪TA为当前会话启动PC采样。采样数据由TEE核心直接写入用户空间缓冲区。

每当TA执行中断时,TEE核心记录当前程序计数器的值,并建立程序位置的直方图(即,PC的每个值所花费的相对时间量)。gprof工具稍后将使用它来派生每个函数所花费的时间。假设采样率大致恒定,通过跟踪执行用户TA代码所花费的时间并将中断数除以总时间来计算采样率。

记录调用图和采样数据的分析缓冲区分配在TA的.bss部分中。只有在检测TA时,链接器脚本才会保留一些空间。

参考:Gprof --- OP-TEE documentation documentation

相关推荐
粥粥粥少女的拧发条鸟25 天前
【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs
security·tee·npu
粥粥粥少女的拧发条鸟1 个月前
【论文分享】sNPU: Trusted Execution Environments on Integrated NPUs 24‘ISCA
tee·npu
代码改变世界ctw2 个月前
Armv8/Armv9的Pstate寄存器介绍
汇编·arm开发·trustzone·atf·tee·寄存器·secure
代码改变世界ctw4 个月前
TEE的存储系统是如何实现的?如何保证其安全的?
安全·trustzone·optee·tee·安全存储·storage·trustonic
GarryLau5 个月前
性能测试工具一——gprof(采样测试与插桩测试结合的混合测试)
gprof
叶卡捷琳堡6 个月前
QEMU_v8搭建OP-TEE运行环境
linux·ubuntu·qemu·optee·tee
安全二次方security²6 个月前
ARM FVP平台的terminal窗口大小如何设置
arm·optee·arm安全架构·fvp·窗口大小设置·fixed virtual·fast models
代码改变世界ctw7 个月前
深度学习armv8/armv9 cache的原理
人工智能·深度学习·trustzone·optee·tee·armv8·周贺贺
子羽潇潇7 个月前
optee默认安全配置
trustzone·optee
cv工程师小智7 个月前
多核多cluster多系统之间缓存一致性概述
安全·缓存·arm·cache·tee·armv8·armv9