我的理解是udelay()不会阻止调度程序在压力情况下将CPU分配给更高优先级的任务。
但是,我认为,我对真实原因的了解有点浅薄,并且会对此有所了解。答案 0 :(得分:0)
请参阅delays - Information on the various kernel delay / sleep mechanisms。
没有说udelay()
是不可靠的,相反,它是原子上下文中的推荐方式,也是非原子上下文中几微秒的休眠方式。 / p>
虽然你正确地说 udelay()不会阻止调度程序在压力情况下将CPU分配给更高优先级的任务,但它会通过忙等待而不是屈服来创建这样的压力从一开始就将CPU转换为其他(可能是相同的优先级)任务,这就是为什么建议不要延迟更长时间。