2016-06-02 8 views
2

Возможно ли сбросить только trace_printk() выходы в файле trace? Я имею в виду отфильтровать все функции в функции tracer (или любой другой трассировщик).ftrace: Только вывод на печать trace_printk()

+0

Насколько я помню, запись 'none' в файл' current_tracer' делает именно это: сохраняется только вывод 'trace_printk()'. Не могу проверить сейчас. – Tsyvarev

+2

@ Цыварев, спасибо. Но 'none' является недопустимым значением. ('nop' есть, но он используется для удаления всех трассировщиков из трассировки.) – Ravi

ответ

0

В общем, вы можете отключить опции внутри каталога опций, /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() является единственным опция.

Всегда полезно проверить kernel documentation, если у вас есть сомнения. Там также была отличная статья из лузги, которая помогла мне, когда я впервые изучил фрейс под названием Secrets of the Ftrace function tracer, в котором есть некоторые разделы о фильтрации в целом.