内核特性:让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个
本文来自博客园,作者:摩斯电码,未经同意,禁止转载