Re: [PATCH] nvme/pci: Use host managed power state for suspend

From: Kai-Heng Feng
Date: Mon May 13 2019 - 13:18:05 EST


at 23:16, Keith Busch <kbusch@xxxxxxxxxx> wrote:

On Mon, May 13, 2019 at 04:57:08PM +0200, Christoph Hellwig wrote:
On Mon, May 13, 2019 at 02:54:49PM +0000, Mario.Limonciello@xxxxxxxx wrote:
And NVME spec made it sound to me that while in a low power state it shouldn't
be available if the memory isn't available.

NVME spec in 8.9:

"Host software should request that the controller release the
assigned ranges prior to a shutdown event, a Runtime D3 event, or any other event
that requires host software to reclaim the assigned ranges."

The last part of the quoted text is the key - if the assigned range
is reclaimed, that is the memory is going to be used for something else,
we need to release the ranges. But we do not release the ranges,
as we want to keep the memory in use so that we can quickly use it
again.

Yes, this. As far as I know, the host memory range is still accessible in
the idle suspend state. If there are states in which host memory is not
accessible, a reference explaining the requirement will be most helpful.

Disabling HMB prior suspend makes my original patch work without memory barrier.

However, using the same trick on this patch still freezes the system during S2I.

Kai-Heng