Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp593308yba; Thu, 9 May 2019 02:57:26 -0700 (PDT) X-Google-Smtp-Source: APXvYqyldmoleGZV42Ul1VtoKgRFec0T+vGmi0AtPBSE7US/TDUT+6ZUtJHsauoYCnA9b0yF7qJQ X-Received: by 2002:a65:62c3:: with SMTP id m3mr4138804pgv.159.1557395846474; Thu, 09 May 2019 02:57:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557395846; cv=none; d=google.com; s=arc-20160816; b=FMu0X4y5yITu0P2qwXJywjTnlMU/1yFcOcVZNEBuqqjhKkuFWmHbRUndrHyu7FfwlY X7ICnT3P66QXW0ENnBzL4lgwfilRQu8MNp/KMZvus5sZx62ZuwatsaHFinWf+HXq4q8p qZTsOAy5uEH/AxTTL9J3ZwnQicnCwzGAiPuHjWWlMYBYslWtbyo6VuTULelvQ/zJC7gq E7mlW0eClpzNM1iEFUEV9nSdpnucXq44fMHvhlKD93b9EfpwFw/+uh/qfC1VtlZMlikx EIjJcxlDnaFOzsjvYZTvuAHb1Fi0og64N+2IBA9K0y44MJizKDwOrbzC8TAJV+Z7p+mq gGjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=o6IeNd7qxgpT5lvKsJfQt38NgzwhHZ7FoVmgBACIp90=; b=VduhEh8cnWDqAGXhEJ4B/CWuYOOYABjTmcY633HaWVfLDmzUHTAw3nsb5chouAoCfa kmmPj5rBsXCUUIX3RsATENQ53umi8uWi0wXmYrEMd6JIOdxsMrvp0at/EGYCHoQ3+ORx Bh8yUnVuT5jLnWgCOf63Eoh3h/X7J+XnY64wvFmshu7XdW4ZDyOOSoU7SCWtZyleRdfR 4zkTdrvbo0vkl2Jt+LwFsaD66ekQ3kQKRu0QQskocc/kgDpEAObUwAZDlr2KzydIXVP9 QW4R4UE5vsQjZ2bYMMr1K/Gweqr4xHEDaXfFbk6d+XKwsz+FC0byZLPc7jxOU3S2cYz+ 4pXg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k14si2050329pfo.169.2019.05.09.02.57.10; Thu, 09 May 2019 02:57:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726449AbfEIJ4V (ORCPT + 99 others); Thu, 9 May 2019 05:56:21 -0400 Received: from verein.lst.de ([213.95.11.211]:44825 "EHLO newverein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725826AbfEIJ4V (ORCPT ); Thu, 9 May 2019 05:56:21 -0400 Received: by newverein.lst.de (Postfix, from userid 2407) id 726AE68AFE; Thu, 9 May 2019 11:56:01 +0200 (CEST) Date: Thu, 9 May 2019 11:56:01 +0200 From: Christoph Hellwig To: Kai-Heng Feng Cc: "Rafael J. Wysocki" , Christoph Hellwig , Rafael Wysocki , Mario Limonciello , Keith Busch , Keith Busch , Jens Axboe , Sagi Grimberg , linux-nvme , Linux PM , LKML Subject: Re: [PATCH] nvme-pci: Use non-operational power state instead of D3 on Suspend-to-Idle Message-ID: <20190509095601.GA19041@lst.de> References: <20190508185955.11406-1-kai.heng.feng@canonical.com> <20190508191624.GA8365@localhost.localdomain> <3CDA9F13-B17C-456F-8CE1-3A63C6E0DC8F@canonical.com> <20190508195159.GA1530@lst.de> <20190509061237.GA15229@lst.de> <064701C3-2BD4-4D93-891D-B7FBB5040FC4@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 09, 2019 at 05:42:30PM +0800, Kai-Heng Feng wrote: >> That would be a set of 6 new suspend and resume callbacks, mind you, >> and there's quite a few of them already. And the majority of drivers >> would not need to use them anyway. > > I think suspend_to_idle() and resume_from_idle() should be enough? > What are other 4 callbacks? > >> >> Also, please note that, possibly apart from the device power state >> setting, the S2I and S2R handling really aren't that different at all. >> You basically need to carry out the same preparations during suspend >> and reverse them during resume in both cases. > > But for this case, it’s quite different to the original suspend and > resume callbacks. Let's think of what cases we needed. The "classic" suspend in the nvme driver basically shuts down the device entirely. This is useful for: a) device that have no power management b) System power states that eventually power off the entire PCIe bus. I think that would: - suspend to disk (hibernate) - classic suspend to ram The we have the sequence in your patch. This seems to be related to some of the MS wording, but I'm not sure what for example tearing down the queues buys us. Can you explain a bit more where those bits make a difference? Otherwise I think we should use a "no-op" suspend, just leaving the power management to the device, or a simple setting the device to the deepest power state for everything else, where everything else is suspend, or suspend to idle. And of course than we have windows modern standby actually mandating runtime D3 in some case, and vague handwaving mentions of this being forced on the platforms, which I'm not entirely sure how they fit into the above picture.