0

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

ret = platform_driver_register(&serial8250_isa_driver);

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

谢谢,维杰

4

1 回答 1

0

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

为了更多地回答您的问题,您运行的平台是否有 8250 ISA UART?如果不是,那可以很好地解释为什么初始化需要这么长时间(它正在超时)。

于 2012-09-25T07:17:15.763 回答