Getting rid of nvme's pci watchdog timer?
Christoph Hellwig
hch at lst.de
Wed May 24 02:42:19 PDT 2017
On Tue, May 23, 2017 at 02:23:50PM -0700, Andy Lutomirski wrote:
> nvme polls pci devices to make sure they're not dead even when they're
> completely idle. Can we fix that without killing scalability? Can we
> piggyback off the block layer's timeout mechanism? Could we simply
> *delete* the watchdog timer and add some CSTS and PCI_STATUS
> diagnostics to nvme_timeout()?
>
> I doubt that one rounded wakeup per second makes much difference on
> CPU/package power saving, but it could be pretty bad for ASPM and
> maybe even APST power saving.
Note that section 8.4.1 in NVMe says controller should service mmio
access in non-operational power states. That being said not touching
an idle controller all the time seems pretty useful to me. I don't
really understand the need for the watchdog fully as it predates my
involvement, but I vaguely remember discussion the issue with Keith
a while ago, so he might be able to help.
More information about the Linux-nvme
mailing list