State of outstanding command executing driver code during suspend()/resume().

State of outstanding command executing driver code during suspend()/resume().

am 07.09.2010 18:30:28 von ld puri

Hi All,

While browsing through current Linux Power management implementation
wrt AHCI drivers, I stumbled upon following doubts.

I assume=A0whenever=A0system wide=A0suspend (STR/hibernate) occurs, all=
the
process is=A0freeze=A0by the Kernel's PM=A0subsystem and it ensures the=
re
are no additional command can be issued to AHCI driver.=A0But it can be
very much possible some commands are being executed within the AHCI
driver.

If my understanding is correct suspend() will be called anytime for
the AHCI driver. In other words, the invocation
ahci_pci_device_suspend() from PCI=A0subsystem=A0won't wait for ahci
driver to complete its outstanding command.
The invocation of suspend(), resume() & remove() call backs from PCI
subsystem are not=A0synchronized=A0with that driver's IO path is this
correct ?

Does these outstanding command currently executed by driver will be los=
t ?

Moreover in resume() routine of AHCI driver, the controller is
reinitialized (ahci_init_controller), then how system can restart the
commands that are stopped during previous suspend() call.

Thanks
Das
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html