> -----Original Message-----
> From: Keith Busch <kbu...@kernel.org>
> Sent: Monday, May 13, 2019 9:55 AM
> To: Limonciello, Mario
> Cc: h...@lst.de; keith.bu...@intel.com; s...@grimberg.me; linux-
> n...@lists.infradead.org; raf...@kernel.org; linux-kernel@vger.kernel.org; 
> linux-
> p...@vger.kernel.org; kai.heng.f...@canonical.com
> Subject: Re: [PATCH] nvme/pci: Use host managed power state for suspend
> 
> 
> [EXTERNAL EMAIL]
> 
> On Mon, May 13, 2019 at 02:43:43PM +0000, mario.limoncie...@dell.com wrote:
> > > Well, it sounds like your partners device does not work properly in this
> > > case.  There is nothing in the NVMe spec that says queues should be
> > > torn down for deep power states, and that whole idea seems rather
> > > counter productive to low-latency suspend/resume cycles.
> >
> > Well I've got a thought, quoting the NVME spec:
> > "After a successful completion of a Set Features command for this feature, 
> > the
> controller shall be in the
> > Power State specified. If enabled, autonomous power state transitions 
> > continue
> to occur from the new state."
> >
> > If APST is enabled on this disk, what is to stop an autonomous  reverse
> > transition from queue activity on the way down?
> 
> Regardless of whether APST is enabled or not, the controller may
> autonomously transition out of a host requested low power state in
> response to host activity. Exiting a low power state should mean some
> other task is actively using the device, and if that's the case, why are
> you trying to enter a low power state in the first place? Alternatively,
> if host activity really is idle, then why is the device autonomously
> leaving the requested state?

This system power state - suspend to idle is going to freeze threads.
But we're talking a multi threaded kernel.  Can't there be a timing problem 
going
on then too?  With a disk flush being active in one task and the other task 
trying
to put the disk into the deepest power state.  If you don't freeze the queues 
how
can you guarantee that didn't happen?

Reply via email to