首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在嵌入式Linux上,找出延迟的原因的工具是什么?

在嵌入式Linux上,找出延迟的原因的工具是什么?
EN

Stack Overflow用户
提问于 2019-02-27 13:44:42
回答 1查看 179关注 0票数 0

最好的情况是,如果我有一个(调试)-tool,它在后台运行,并告诉我进程或驱动程序的名称,该进程或驱动程序破坏了我对系统的延迟要求。哪一种工具合适?对于下面的情况,您有使用它的简短示例吗?

测试用例:

  • 示波器测量从GPIO输入的触发到GPIO输出的响应之间的时间。通常响应时间是150秒,我每25毫秒触发一次。
  • 我的linux用户测试程序使用poll()和read()+write()将检测到的输入信号镜像为对输出的响应。
  • Linux内核使用Preempt_rt修补程序进行修补。
  • 在小时的维数中,我可以看到高达20 to的响应时间峰值。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-26 10:10:48

最好的机会就是

  1. 打开内核配置中的跟踪并构建这样的Linux内核:

CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y CONFIG_SCHED_TRACER=y CONFIG_FTRACE_SYSCALLS=y CONFIG_STACK_TRACER=y CONFIG_DYNAMIC_FTRACE=y CONFIG_FUNCTION_PROFILER=y CONFIG_DEBUG_FS=y

  1. 然后运行应用程序,直到使用工具trace-cmd发生奇怪的事情为止。

启动-b 10000 -e 'sched_wakeup*‘-e sched_switch -e gpio_value -e irq_handler_entry -e irq_handler_exit /tmp/myUserApplication

并获得一个trace.dat文件。

停止跟踪-cmd提取

  1. 在trace.dat中加载KernelShark文件,并分析CPU、线程、中断、kworker线程和用户空间线程。很高兴看到是哪个阻碍了系统。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54906895

复制
相关文章

相似问题

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