4. 系统调用延迟测量方法

系统调用延迟是衡量操作系统性能与稳定性的核心指标之一。在 SRE 与内核工程实践中,精确测量 syscall 延迟分布、定位长尾耗时、识别锁竞争与 I/O 阻塞,是保障 SLA 的基础。本章深入剖析四种主流追踪工具的原理与实战用法,并引入火焰图进行可视化分析。

4.1 延迟测量工具选型对比

不同工具在开销、可观测深度、动态插桩能力上存在显著差异。下表从工程部署角度进行对比:

工具 数据源 开销等级 动态插桩 适用场景
perf 硬件 PMU + 软件 tracepoint 低 否(静态事件) 全局采样、CPU 热点、上下文切换
ftrace 内核静态 tracepoint + function tracer 极低 是(function_graph) 函数级延迟追踪、内核调试
bpftrace eBPF 辅助程序 低-中 是(kprobe/uprobe) 快速 ad-hoc 诊断、单行脚本
eBPF (libbpf/bcc) eBPF 虚拟机 + maps 低 是(kprobe/tracepoint) 生产级持续追踪、直方图聚合
工程选型建议: 生产环境优先使用 eBPF 方案(bcc/libbpf)进行持续延迟监控;临时故障排查使用 bpftrace 快速定位;perf 适用于离线采样分析;ftrace 适合内核开发者进行细粒度函数级追踪。

4.2 perf:基于 PMU 的采样与延迟分析

perf 利用 CPU 性能监控单元(PMU)以极低开销采集 syscall 进入/退出事件。通过 perf record 与 perf script 可重建每次 syscall 的耗时分布。

4.2.1 关键命令与输出

# 采集所有 syscall 进入与退出事件,持续 10 秒
perf record -e raw_syscalls:sys_enter -e raw_syscalls:sys_exit -a -g -- sleep 10

# 解析输出,计算每次 syscall 延迟
perf script -F comm,pid,event,time | awk '
/sys_enter/ { enter[$1,$2,$3] = $4 }
/sys_exit/  {
  key = $1","$2","$3
  if (key in enter) {
    lat = $4 - enter[key]
    print $1,$2,$3,lat
    delete enter[key]
  }
}' | sort -k4 -rn | head -20
延迟计算原理: 每个 syscall 由一对 sys_enter 与 sys_exit tracepoint 包围。通过时间戳差值即可获得单次 syscall 的完整耗时(纳秒级)。注意内核时间戳可能受 TSC 频率调整影响,建议在稳定时钟源下使用。

4.2.2 延迟分布直方图

perf 本身不直接输出直方图,但可通过 perf stat 的延迟统计模式或结合 perf report 的排序功能间接观察。更推荐将原始数据导出后使用 Python/matplotlib 绘制 CDF 图。

4.3 ftrace:函数级延迟追踪

ftrace 是内核内置的追踪框架,无需额外安装。通过 function_graph tracer 可以记录每个 syscall 内部函数的调用链与执行耗时。

4.3.1 启用 function_graph 追踪

# 挂载 tracefs
mount -t tracefs nodev /sys/kernel/tracing

# 选择 function_graph tracer
echo function_graph > /sys/kernel/tracing/current_tracer

# 设置只追踪 __x64_sys_read 函数
echo __x64_sys_read > /sys/kernel/tracing/set_graph_function

# 开启追踪
echo 1 > /sys/kernel/tracing/tracing_on

# 等待几秒后关闭
echo 0 > /sys/kernel/tracing/tracing_on

# 查看结果
cat /sys/kernel/tracing/trace | head -50

4.3.2 输出示例解读

  # tracer: function_graph
  #
  # CPU  DURATION                  FUNCTION CALLS
  # |     |   |                     |   |   |   |
   0)   0.5 us |  __fdget_pos();
   0)   0.3 us |  rw_verify_area();
   0)   1.2 us |  vfs_read();
   0)   0.8 us |  __fsnotify_parent();
   0)   0.4 us |  fsnotify();
   0)   0.2 us |  __sb_start_write();
   0)   0.6 us |  __vfs_read();
   0)   0.3 us |  ext4_file_read_iter();
   0)   0.7 us |  generic_file_read_iter();
   0)   0.5 us |  filemap_read();
   0)   0.4 us |  copy_page_to_iter();
   0)   0.3 us |  __might_fault();
   0)   0.2 us |  _copy_to_user();
   0)   0.1 us |  __might_fault();
   0)   0.2 us |  rcu_read_unlock_strict();
   0)   0.1 us |  __fsnotify_parent();
   0)   0.1 us |  fsnotify();
   0)   0.1 us |  __sb_end_write();
   0)   0.1 us |  fdput();
   0)   0.1 us |  __fput_sync();
   0)   0.1 us |  __fput();
   0)   0.1 us |  file_free_rcu();
   0)   0.1 us |  call_rcu();
   0)   0.1 us |  __put_cred();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0.1 us |  __fcheck_files();
   0)   0