Linux UART驱动程序 - 调试__init调用所需的时间

时间:2012-09-25 07:12:12

标签: linux-kernel linux-device-driver kernel-module kernel

我对Linux内核有点新意,我们的团队正在尝试优化设备的启动时间。据观察,8250 UART驱动程序需要1秒多才能完成__init调用。使用printk并使用生成的控制台时间戳记作为每条日志消息的前缀,我能够缩小函数调用,这需要额外的时间:

ret = platform_driver_register(& serial8250_isa_driver);

作为一名新手,我不确定从调试的角度来看我还能做些什么来追踪问题?我正在寻找一些经验丰富的内核开发人员提供的指针/建议。只是好奇内核开发人员在他们的“调试工具箱”中使用了什么其他方法?

谢谢, 维杰

1 个答案:

答案 0 :(得分:0)

如果我理解正确,寄存器功能正在处理该结构(可能是轮询地址或其他东西)。您需要查看寄存器是否正在调用其中定义的任何函数。

要更多回答您的问题,您运行的平台是否有8250 ISA UART?如果没有,这可以很好地解释为什么它需要这么长时间才能启动(它的超时)。