ftrace: выводить только вывод trace_printk()

Можно ли сбрасывать только trace_printk() выходы в trace файл? Я имею в виду отфильтровать все функции в функции трассировщика (или любого другого трассировщика).

2 ответа

В общем, вы можете отключить опции внутри каталога опций, /sys/kernel/debug/tracing/options, использование ls для отображения всех переключаемых опций.

# ls
annotate     context-info     funcgraph-abstime   funcgraph-overhead  func_stack_trace  hex             overwrite        record-cmd  sym-offset       trace_printk
bin          disable_on_free  funcgraph-cpu       funcgraph-overrun   function-fork     irq-info        printk-msg-only  sleep-time  sym-userobj      userstacktrace
blk_classic  display-graph    funcgraph-duration  funcgraph-proc      function-trace    latency-format  print-parent     stacktrace  test_nop_accept  verbose
block        event-fork       funcgraph-irqs

Переключить опции через echoт.е.

echo -n "1" > /sys/kernel/debug/tracing/options/trace_printk

Если вы пытаетесь отфильтровать любой вывод, который не был произведен trace_printk()вы, вероятно, должны убедиться, что trace_printk() это единственная опция

Всегда полезно проверить документацию ядра, если есть сомнения. Есть также отличная статья, которая помогла мне, когда я только начал изучать ftrace, под названием Secrets of the Ftrace tracer, которая включает в себя несколько разделов о фильтрации в целом.

Для тех, кто не может получить больше информации из этого потока ... На самом деле, если вы используете nop в качестве current_tracer, вы проигнорируете всю трассировку, кроме trace_printk.

делать

      echo nop > current_tracer

и запустите модуль ядра или что-нибудь еще, что включает ваш файл trace_printk.

Другие вопросы по тегам