Map 1
bpf
  BTF
    debuginfo of bpf program
    embed in bpf program
    maybe become a general-purpose data format to describe kernel data struct
  BPF-CE
  stack trace walking
    frame poniter-based stacks
      cons: gcc默认配置是破坏了rbp调用约定的 所以在(close to 0)大多数软件都不能用
    debug info
      含有丰富的调用信息函数什么的 但对 调用链分析 没什么卵用
    LBR(Last Branch Record)
      处理器(intel)提供的记录调用函数的能力
        缺点
          依赖处理器
          只能记录固定数量的调用栈
    ORC
      奇怪的格式 在linux kernel中早就有实现 缺点是目前只在内核中使用
  flame graph
    hue 色调 区分代码类型 内核代码还是 用户空间代码
    函数名颜色聚合 相同的函数是相同的颜色
    背景色 标识不同的火焰图类型 CPU yellow/IO blue/green memory
    x 轴 字母序 宽度表示占用cpu 时间 y轴表示调用栈
    flamt chart 和 flame graph 类似 x轴以时长排序
  tools
    tcplife
    vfsstat
      vfs 性能状态
        参数
          vfsstat-bpfcc [interval [count]]
        输出
          READ/s Number of vfs_read() calls as a per-second average.
          WRITE/s Number of vfs_write() calls as a per-second average.
          CREATE/s Number of vfs_create() calls as a per-second average.
          OPEN/s Number of vfs_open() calls as a per-second average.
          FSYNC/s Number of vfs_fsync() calls as a per-second average.