作者简介:
刘孝冬 Intel 高级软件工程师
专注于开源存储SPDK及ISA-L软件的开发。
曾梦想仗剑走天涯,看看这繁华的世界。刚推门迈了几步,后台拦住你,“你的进程怎么把IO搞丢了!”
年少的心总有些轻狂,你以为打几句LOG就能揪出这BUG。可是,这次把源码打的千疮百孔,也没有打出个名堂。
每一刻难过的时候,别光想着打LOG看LOG,想想是不是有个叫trace的工具还没用?
1
SPDK Trace
介绍
软件开发人员需要了解程序运行时的行为,以便在出现故障时做代码调试,或性能分析时查找热点。通常当日志所记录的信息无法提供足够细节、无法包含足够类型时,软件跟踪技术(Trace)就会被用来记录特定相关类型事件的发生和相应上下文信息,并将记录内容写入到指定文件内,待后续分析使用。
SPDK中有一个跟踪框架*SPDK tracing,用于在运行时捕获底层事件信息。跟踪点(Tracepoint)提供了一个在运行时可行的高性能跟踪机制。它们被实现为共享内存中的环形缓冲区,这样在SPDK进程向环形缓冲区写入记录时,其他进程也可以访问缓冲区上的内容。