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.