内核特性:让function graph tracer也支持多实例(多用户)

PATCH链接

效果

如果多个用户都想使用ftrace,而且之间又不相互影响,通过/sys/kernel/debug/tracing/instances可以做到,可以在这个目录下创建多个实例,每个实例可以抓取自己的日志,互不影响,参考:https://www.kernel.org/doc/html/latest/trace/ftrace.html#instances

合入上面这个修改后,function_graph也支持多实例:

root@ubuntu-vm:/sys/kernel/debug/tracing/instances# ls foo
available_tracers  buffer_subbuf_size_kb  error_log    options    set_event_notrace_pid  set_ftrace_notrace      snapshot        trace_clock       trace_options    tracing_max_latency
buffer_percent     buffer_total_size_kb   events       per_cpu    set_event_pid          set_ftrace_notrace_pid  timestamp_mode  trace_marker      trace_pipe       tracing_on
buffer_size_kb     current_tracer         free_buffer  set_event  set_ftrace_filter      set_ftrace_pid          trace           trace_marker_raw  tracing_cpumask
root@ubuntu-vm:/sys/kernel/debug/tracing/instances# cat foo/available_tracers
timerlat osnoise hwlat function_graph wakeup_dl wakeup_rt wakeup preemptirqsoff preemptoff irqsoff function nop

限制

  • 不同的function graph实例之间共享tracer_flags,也就是options/下面关于function graph的控制节点
  • 可以创建的function grapher实例的数量目前最大支持16个
posted @ 2024-09-18 09:53  摩斯电码  阅读(15)  评论(0编辑  收藏  举报