首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ARM中启用FTRACE以跟踪系统的实时特性

在ARM中启用FTRACE以跟踪系统的实时特性
EN

Stack Overflow用户
提问于 2018-08-27 14:26:38
回答 1查看 694关注 0票数 1

我遵循这篇文章来启用FTRACE https://lwn.net/Articles/365835/

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

代码语言:javascript
复制
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测试实时系统中的延迟(触发FTRACER的选项-b )

代码语言:javascript
复制
cyclictest -a -t -n -p99 -f -b100

它生成了转储消息:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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打交道的人都可以提供帮助?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 14:24:58

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

代码语言:javascript
复制
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微秒的延迟之前执行的内核函数用感叹号标记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52033624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档