Fork me on GitHub

08 2022 档案

摘要:perf除了上述的采样形式,还支持解析函数执行的完整调用栈,并得到调用栈中各个环节的cpu消耗,并对位于同一调用栈的各个环节的采样占比进行加总,得到占用cpu比例最高的顶层栈。使用如下命令进行采样 perf record -g --call-graph fp xxx # xxx 代表具体要执行的命令 阅读全文
posted @ 2022-08-28 16:43 yooooooo 阅读(2460) 评论(0) 推荐(0) 编辑
摘要:perf top 用于实时显示当前系统的性能统计信息。该命令主要用来观察整个系统当前的状态,比如可以通过查看该命令的输出来查看当前系统最耗时的内核函数或某个用户进程 再往下看是一个表格式样的数据,每一行包含四列,分别是: 第一列 Overhead ,是该符号的性能事件在所有采样中的比例,用百分比来表 阅读全文
posted @ 2022-08-28 16:03 yooooooo 阅读(876) 评论(0) 推荐(0) 编辑
摘要:Ftrace设计作为一个内部的tracer提供给系统的开发者和设计者,帮助他们弄清kernel正在发生的行为,它能够调式分析延迟和性能问题。对于前一章节,我们学习了Ftrace发展到现在已经不仅仅是作为一个function tracer了,它实际上成为了一个通用的trace工具的框架 一方面已经从f 阅读全文
posted @ 2022-08-23 10:58 yooooooo 阅读(687) 评论(0) 推荐(0) 编辑
摘要:arm64 栈帧结构 arm64 有31个通用寄存器 r0-r30,用法分别如下: 寄存器 意义 SP Stack Pointer: 栈指针 r30 Link Register: 在调用函数时候,保存下一条要执行指令的地址 r29 Frame Pointer:保存函数栈的基地址 r28...r19 阅读全文
posted @ 2022-08-20 22:03 yooooooo 阅读(556) 评论(0) 推荐(0) 编辑
摘要:对于ftrace架构,主要来了解下内核是如何实现的,其主要包括如下内容: ring buffer的原理和代码分析 tracer(function、function_graph、irq_off)原理和代码分析 trace event 1. ring Buffer Ringbuffer是trace32框 阅读全文
posted @ 2022-08-17 21:59 yooooooo 阅读(338) 评论(0) 推荐(0) 编辑
摘要:同一个文件可以被多次打开,譬如在一个进程中多次打开同一个文件、在多个不同的进程中打开同一个文件。 一个进程内多次 open 打开同一个文件,那么会得到多个不同的文件描述符 fd ,同理在关闭文件的 时候也需要调用 close 依次关闭各个文件描述符。 多次打开同一个文件测试代码 1 #include 阅读全文
posted @ 2022-08-13 15:11 yooooooo 阅读(1508) 评论(0) 推荐(0) 编辑
摘要:在前面文章中,我们交代了计算平台相关的一些基本概念以及为什么以GPU为代表的专门计算平台能够取代CPU成为大规模并行计算的主要力量。在接下来的文章中,我们会近距离从软硬件协同角度讨论GPU计算如何开展。跟先前的文章类似,笔者会采用自上而下,从抽象到具体的方式来论述。希望读者不只是对GPU计算能有所理 阅读全文
posted @ 2022-08-07 15:53 yooooooo 阅读(395) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示