一组内核驱动程序模块的启动时间贡献

问题描述 投票:0回答:1

我想分析/测量一组内核模块驱动程序在 Android Linux 中启动时间所贡献的时间。

假设我有 20 个用于多媒体子系统的驱动程序,每个驱动程序都实现了相应的探测和绑定调用。根据主板配置,有些驱动程序将被绑定,有些则不会。

我想询问linux内核中是否有任何可用的工具,可以说明每个驱动程序在启动时花费了多少时间。

感谢您对此的帮助。 (否则我必须为每个驱动程序绑定调用显式调用计时器 KPI,并在绑定成功后打印它们。)

我知道我们可以启用 ftrace 和 perf。但我不熟悉使用它们。仍在对此进行更多探索。

linux-device-driver
1个回答
0
投票

您可以使用启用时间戳的

Ftrace
来跟踪所需的时间 绑定/取消绑定或任何其他正在执行的内核函数。

Ftrace 是直接内置于 Linux 内核中的跟踪实用程序。只需在内核中打开这些配置即可:

CONFIG_FUNCTION_TRACER
CONFIG_FUNCTION_GRAPH_TRACER
CONFIG_STACK_TRACER
CONFIG_DYNAMIC_FTRACE

您的 Ftrace 输出应该如下所示。检查时间戳列

有关 Ftrace 的更多详细信息可以在 kernel.org 中找到

© www.soinside.com 2019 - 2024. All rights reserved.