a few questions about Runtime PM
From: Zhang, QianFeng <hidden>
Date: 2012-06-28 03:54:43
I am looking through the IO device Runtime PM implementation on Linux (Fedora 16). There are some questions that
need you help to clarify for me, here they are
1) For those IO devices that could not be waked up through ACPI GPEs or native PCI Express PME , can Runtime suspend/resume be used ?
2) In rtl8169's implementation of Runtime suspend/resume, there is a routine rtl8169_check_link_status(), which always invokes
pm_schedule_suspend() if the Link line is dis-connected, pm_request_resume() if the Link line is connected. And rtl8169_check_link_status
itself is called through the transmit time out handler, which invokes rtl8169_reset_task. So rtl8169_check_link_status, as an opportunity point
for Runtime PM for its network interface , does not require any wake-up signaling, right? The only Hardware Level requirement for rtl1869_check_link_status
to work in this way is that the link status register can always be read no matter the network interface is in off or on status.
3) How should the Block IO adapter devices like the SCSI Controller or FC Adapters should do Runtime PM ? In my understand, these
Devices should be auto-suspended when there is no IO request pending for a predefined duration, and they should be resumed when
a new IO request issued by the block layer. So these devices may use a different wake up method that has no dependency on PCI Express PME or
ACPI GPE.
n Qianfeng Zhang