SPDK的BPF Tracing
例如,可以输出某个函数每次被调用时的参数,计算某个代码路径被执行的次数,甚至可以创建并显示一组数据的直方图。scripts/bpf/send_msg.bt脚本通过uprobe关键字定义了两个动态探针,分别为send_msg和for_each_channel,将每个函数的调用次数存在映射。这两个变量都提供了更便捷的方法,在不同的应用程序中可使用相同的脚本。BPF追踪由一组bpftrace程序、定义在SPDK库的USDT探针和几个脚本组成,这些脚本能够简化BPF追踪,和常规的SPDK追踪代码结合使用