我对Linux内核有点新意,我们的团队正在尝试优化设备的启动时间。据观察,8250 UART驱动程序需要1秒多才能完成__init调用。使用printk并使用生成的控制台时间戳记作为每条日志消息的前缀,我能够缩小函数调用,这需要额外的时间:
ret = platform_driver_register(& serial8250_isa_driver);
作为一名新手,我不确定从调试的角度来看我还能做些什么来追踪问题?我正在寻找一些经验丰富的内核开发人员提供的指针/建议。只是好奇内核开发人员在他们的“调试工具箱”中使用了什么其他方法?
谢谢, 维杰
答案 0 :(得分:0)
如果我理解正确,寄存器功能正在处理该结构(可能是轮询地址或其他东西)。您需要查看寄存器是否正在调用其中定义的任何函数。
要更多回答您的问题,您运行的平台是否有8250 ISA UART?如果没有,这可以很好地解释为什么它需要这么长时间才能启动(它的超时)。