"noirq suspend" 在 linux 内核中
"noirq suspend" in the linux kernel
在 linux 内核的上下文中,noirq suspend
是什么意思?我在 dmesg
的输出中看到了这个日志:
PM: noirq suspend of devices failed
有什么想法吗?
感谢@0andriy 的评论,我在 linux 内核源代码中找到了对它的描述(include/linux/pm.h
) :
@suspend_noirq: Complete the actions started by @suspend(). Carry out any
additional operations required for suspending the device that might be
racing with its driver's interrupt handler, which is guaranteed not to
run while @suspend_noirq() is being executed.
It generally is expected that the device will be in a low-power state
(appropriate for the target system sleep state) after subsystem-level
@suspend_noirq() has returned successfully. If the device can generate
system wakeup signals and is enabled to wake up the system, it should be
configured to do so at that time. However, depending on the platform
and device's subsystem, @suspend() or @suspend_late() may be allowed to
put the device into the low-power state and configure it to generate
wakeup signals, in which case it generally is not necessary to define
@suspend_noirq().
在 linux 内核的上下文中,noirq suspend
是什么意思?我在 dmesg
的输出中看到了这个日志:
PM: noirq suspend of devices failed
有什么想法吗?
感谢@0andriy 的评论,我在 linux 内核源代码中找到了对它的描述(include/linux/pm.h
) :
@suspend_noirq: Complete the actions started by @suspend(). Carry out any additional operations required for suspending the device that might be racing with its driver's interrupt handler, which is guaranteed not to run while @suspend_noirq() is being executed. It generally is expected that the device will be in a low-power state (appropriate for the target system sleep state) after subsystem-level @suspend_noirq() has returned successfully. If the device can generate system wakeup signals and is enabled to wake up the system, it should be configured to do so at that time. However, depending on the platform and device's subsystem, @suspend() or @suspend_late() may be allowed to put the device into the low-power state and configure it to generate wakeup signals, in which case it generally is not necessary to define @suspend_noirq().