如何处理USB HCI驱动程序内部硬件引起的延迟问题?

时间:2018-12-18 05:37:47

标签: linux-kernel

我正在编写自定义的USB HCI驱动程序,并看到由硬件延迟引起的挂起问题。

基本上,在HCI驱动程序API(例如urb_enqueue()/ hub_control()/ hub_status())中,spin_lock用于确保端口状态更改的同步。当HCI驱动程序发送GetPortStatus()并对结果进行轮询时,我的硬件响应速度有点慢,因此导致其他进程等待相同的spin_lock饿死并挂起内核。

我正在考虑使用信号量而不是spin_lock,但是不确定这是否是个好主意,因为我不确定USB内核稍后将如何处理此类延迟...

任何人都知道有什么更好的解决方案?

0 个答案:

没有答案