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

From: Mario.Limonciello
Date: Mon May 13 2019 - 14:03:22 EST




> -----Original Message-----
> From: Christoph Hellwig <hch@xxxxxx>
> Sent: Monday, May 13, 2019 9:57 AM
> To: Limonciello, Mario
> Cc: kbusch@xxxxxxxxxx; keith.busch@xxxxxxxxx; hch@xxxxxx; sagi@xxxxxxxxxxx;
> linux-nvme@xxxxxxxxxxxxxxxxxxx; rafael@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> linux-pm@xxxxxxxxxxxxxxx; kai.heng.feng@xxxxxxxxxxxxx
> Subject: Re: [PATCH] nvme/pci: Use host managed power state for suspend
>
>
> [EXTERNAL EMAIL]
>
> On Mon, May 13, 2019 at 02:54:49PM +0000, Mario.Limonciello@xxxxxxxx wrote:
> > The Intel DMA controller suspend callbacks in drivers/dma/idma64.c look to me
> to
> > turn off the controller.
>
> How is that relevant? That thing is neither a NVMe controller, nor
> even an PCIe device..

When using HMB the SSD will be writing to some memory mapped region. Writing to
that region would use DMA to access host memory, no?
If the DMA controller is not functional writing to that region won't work properly as
it can't access that memory.

>
> > 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.