perf report输出中的[k]符号代表什么含义?
perf report 中标记为[k]的符号含义
在如下perf report输出里,标记为[k]的符号是什么意思?
+ 63.93% 0.10% sample libc.so.6 [.] __GI___fstatat64 + 63.82% 63.82% sample [unknown] [k] 0xffffffffa90001a2 <---- here + 5.32% 0.00% sample [unknown] [.] 0000000000000000
我在perf-report的官方手册页中未找到相关说明。
在perf report的输出里,[k]是用来区分代码所属运行空间的标记:
[k]表示该采样点落在**内核空间(Kernel Space)**的代码中- 对应的
[.]则表示采样点属于**用户空间(User Space)**的代码
输出里显示[unknown]加内核地址,通常是因为perf无法解析该地址对应的内核符号,常见原因包括:
- 未安装对应版本的内核调试包,或者未配置内核符号表加载路径
- 当前用户没有足够权限读取内核符号(比如未将
/proc/sys/kernel/kptr_restrict设置为0) - 内核编译时未保留符号调试信息
内容的提问来源于stack exchange,提问作者imrichardcole
相关产品推荐
相关产品推荐

