Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp5386440yba; Wed, 8 May 2019 12:26:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqyO85r7PKrTsJcu6U/uok7lxg9dnfGaRRPKCe5n6AN/iueBlK86X71kyxDK7wIoW+/4dQs8 X-Received: by 2002:a63:f712:: with SMTP id x18mr50402423pgh.293.1557343583250; Wed, 08 May 2019 12:26:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557343583; cv=none; d=google.com; s=arc-20160816; b=NK8C19PaWfPb30XftqbJuMAkXx2NY9mA8rG+SFGSjh8xWv8u8RhVIKJqFqJJPhlSoZ TgPYHTetyFgMPBIKnUzO3s/HTs6J5qMbnbXmcLZL7+BX7RP2ctojQ2pDI+hX+HzjTiEY 3OZo1B2C5yKbdpJF1z33zgq2TLzvP4oqTcfDgcCmUPGL0lqUiy+tWrPV68mEssxdbnAk dzg2RyVTD8pLgBiIkN7HoBpSQqVP0ecK1zLx4uOh7xhFBW+KckDogDfCJ7RcCPrfbn7y lerAFdxQTNCI9hnfvam4j24KVGede12ucWGd4vvCGGhmCUStzy+GXanCMjGInYAMqZ+I Rjjg== 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-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=MiifB7+IzpX2UJIiq1vtNUqOQGfA1IN4LCqs7wVL1fw=; b=SB4lBVmsh34TZNTyWMxt5LzU3cpajzBW5/XcK7YiEj0BqkdlkUmVPSb8Rm8olv18Wj hprc1BfMSWVPHIoF6fnKluCCAuaNgI+LxbWp3TsyBRRP+RpIugHClOnqr2WGTuu3uYF6 XXqnehc37Fi12W+JEMXc65OXJ/ok4TlhGVki+lsJJyoACs7OHefiNMfdMs6/2NxRC/9K CgpLalX9XTAwz+SGwzFKZgEQZU4R1DTFWkXqnEmREo4rs2vn+qOraUhNJwoiYNPl0QKb e4taV3SAghe38y/qaoaqRWOx5Q/29Z6rGOKPKaqzTAua0/l0SeJcW5lDDagR6Cmj0xVK LuqQ== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u1si25584373pgq.551.2019.05.08.12.26.07; Wed, 08 May 2019 12:26:23 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727900AbfEHTV6 (ORCPT + 99 others); Wed, 8 May 2019 15:21:58 -0400 Received: from mga17.intel.com ([192.55.52.151]:36234 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726687AbfEHTV5 (ORCPT ); Wed, 8 May 2019 15:21:57 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 May 2019 12:21:57 -0700 X-ExtLoop1: 1 Received: from unknown (HELO localhost.localdomain) ([10.232.112.69]) by orsmga007.jf.intel.com with ESMTP; 08 May 2019 12:21:57 -0700 Date: Wed, 8 May 2019 13:16:24 -0600 From: Keith Busch To: Kai-Heng Feng Cc: keith.busch@intel.com, axboe@fb.com, hch@lst.de, sagi@grimberg.me, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, Mario Limonciello Subject: Re: [PATCH] nvme-pci: Use non-operational power state instead of D3 on Suspend-to-Idle Message-ID: <20190508191624.GA8365@localhost.localdomain> References: <20190508185955.11406-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190508185955.11406-1-kai.heng.feng@canonical.com> User-Agent: Mutt/1.9.1 (2017-09-22) 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 02:59:55AM +0800, Kai-Heng Feng wrote: > +static int nvme_do_resume_from_idle(struct pci_dev *pdev) > +{ > + struct nvme_dev *ndev = pci_get_drvdata(pdev); > + int result; > + > + pdev->dev_flags &= ~PCI_DEV_FLAGS_NO_D3; > + ndev->ctrl.suspend_to_idle = false; > + > + result = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES); > + if (result < 0) > + goto out; > + > + result = nvme_pci_configure_admin_queue(ndev); > + if (result) > + goto out; > + > + result = nvme_alloc_admin_tags(ndev); > + if (result) > + goto out; > + > + ndev->ctrl.max_hw_sectors = NVME_MAX_KB_SZ << 1; > + ndev->ctrl.max_segments = NVME_MAX_SEGS; > + mutex_unlock(&ndev->shutdown_lock); This lock was never locked. But I think these special suspend/resume routines are too similar to the existing ones, they should just incorporate this feature if we need to do this.