【问题标题】:Enable FTRACE in ARM to trace realtime characteristic of system在 ARM 中启用 FTRACE 以跟踪系统的实时特性
【发布时间】:2018-08-27 06:26:38
【问题描述】:

我按照这篇文章启用了 FTRACE https://lwn.net/Articles/365835/

为了测试一个实时系统,我的系统使用 arm cortexa15(描述:https://mp.renesas.com/en-us/rzg/marketplace/board/RZGB000003.html

CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_STACK_TRACER=y
CONFIG_DYNAMIC_FTRACE=y

但是,它不起作用,导致系统在启动内核时挂起。 甚至提到How to Enable or configure ftrace module

我想用 cyclictest 测试实时系统中的延迟(选项 -b 触发 FTRACER)

cyclictest -a -t -n -p99 -f -b100

它生成了转储消息:

INFO: debugfs mountpoint: /sys/kernel/debug/tracing/
WARN: tracing_enabled or tracing_on not found
debug fs not mounted, TRACERs not configured?
could not set ftrace_enabled to 0
FATAL: Can't open /sys/kernel/debug/tracing/available_tracers for reading

我重复了下一步以启用一组跟踪器配置:

CONFIG_FTRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FUNCTION_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_PREEMPT_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_TRACEPOINT_BENCHMARK=y
CONFIG_BACKTRACE_SELF_TEST=y
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_LL=y

结果还是一样。内核挂起,没有显示任何内容。

任何处理实时系统和 Ftrace 的人都可以提供帮助吗?谢谢。

【问题讨论】:

    标签: real-time


    【解决方案1】:

    我解决了我的问题。下面是我的 defconfig 文件的一部分。

    CONFIG_STACKTRACE_SUPPORT=y
    CONFIG_TRACE_IRQFLAGS_SUPPORT=y
    CONFIG_TRACEPOINTS=y
    CONFIG_STACKTRACE=y
    CONFIG_NOP_TRACER=y
    CONFIG_TRACER_MAX_TRACE=y
    CONFIG_TRACE_CLOCK=y
    CONFIG_CONTEXT_SWITCH_TRACER=y
    CONFIG_GENERIC_TRACER=y
    CONFIG_FTRACE=y
    CONFIG_FUNCTION_TRACER=y
    CONFIG_FUNCTION_GRAPH_TRACER=y
    CONFIG_SCHED_TRACER=y
    CONFIG_FTRACE_SYSCALLS=y
    CONFIG_TRACER_SNAPSHOT=y
    CONFIG_STACK_TRACER=y
    CONFIG_DYNAMIC_FTRACE=y
    CONFIG_FTRACE_MCOUNT_RECORD=y 
    

    启用 Ftrace 工具后,可以在 /sys/kernel/debug/tracing/trace 的跟踪输出中找到罪魁祸首。在检测到超过 100 微秒的延迟之前执行的内核函数标有感叹号。

    【讨论】:

      猜你喜欢
      • 2016-11-13
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 2011-01-03
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多