All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jingar, Rajvi" <rajvi.jingar@intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: "bhelgaas@google.com" <bhelgaas@google.com>,
	"david.e.box@linux.intel.com" <david.e.box@linux.intel.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
	Kai-Heng Feng <kai.heng.feng@canonical.com>,
	"mika.westerberg@linux.intel.com"
	<mika.westerberg@linux.intel.com>,
	"koba.ko@canonical.com" <koba.ko@canonical.com>,
	"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>,
	"sathyanarayanan.kuppuswamy@linux.intel.com" 
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	Russell Currey <ruscur@russell.cc>,
	Oliver O'Halloran <oohall@gmail.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: RE: [PATCH v4 2/2] PCI/PM: Fix pci_pm_suspend_noirq() to disable PTM
Date: Sat, 23 Apr 2022 00:43:14 +0000	[thread overview]
Message-ID: <SJ0PR11MB507047C0109C5163EF20D9AE9EF69@SJ0PR11MB5070.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20220422222446.GA1522716@bhelgaas>


> -----Original Message-----
> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: Friday, April 22, 2022 3:25 PM
> To: Jingar, Rajvi <rajvi.jingar@intel.com>
> Cc: bhelgaas@google.com; david.e.box@linux.intel.com; linux-
> pci@vger.kernel.org; linux-kernel@vger.kernel.org; linux-pm@vger.kernel.org;
> Wysocki, Rafael J <rafael.j.wysocki@intel.com>; Kai-Heng Feng
> <kai.heng.feng@canonical.com>; mika.westerberg@linux.intel.com;
> koba.ko@canonical.com; baolu.lu@linux.intel.com;
> sathyanarayanan.kuppuswamy@linux.intel.com; Russell Currey
> <ruscur@russell.cc>; Oliver O'Halloran <oohall@gmail.com>; linuxppc-
> dev@lists.ozlabs.org
> Subject: Re: [PATCH v4 2/2] PCI/PM: Fix pci_pm_suspend_noirq() to disable PTM
> 
> [+cc other folks interested in PTM from
> https://lore.kernel.org/r/20220408153159.106741-1-
> kai.heng.feng@canonical.com]
> 
> On Thu, Apr 14, 2022 at 07:54:02PM +0200, Rafael J. Wysocki wrote:
> > On 3/25/2022 8:50 PM, Rajvi Jingar wrote:
> > > For the PCIe devices (like nvme) that do not go into D3 state still need to
> > > disable PTM on PCIe root ports to allow the port to enter a lower-power PM
> > > state and the SoC to reach a lower-power idle state as a whole. Move the
> > > pci_disable_ptm() out of pci_prepare_to_sleep() as this code path is not
> > > followed for devices that do not go into D3. This patch fixes the issue
> > > seen on Dell XPS 9300 with Ice Lake CPU and Dell Precision 5530 with Coffee
> > > Lake CPU platforms to get improved residency in low power idle states.
> > >
> > > Fixes: a697f072f5da ("PCI: Disable PTM during suspend to save power")
> > > Signed-off-by: Rajvi Jingar <rajvi.jingar@intel.com>
> > > Suggested-by: David E. Box <david.e.box@linux.intel.com>
> 
> > > ---
> > >   v1 -> v2: add Fixes tag in commit message
> > >   v2 -> v3: move changelog after "---" marker
> > >   v3 -> v4: add "---" marker after changelog
> > > ---
> > >   drivers/pci/pci-driver.c | 10 ++++++++++
> > >   drivers/pci/pci.c        | 10 ----------
> > >   2 files changed, 10 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
> > > index 8b55a90126a2..ab733374a260 100644
> > > --- a/drivers/pci/pci-driver.c
> > > +++ b/drivers/pci/pci-driver.c
> > > @@ -847,6 +847,16 @@ static int pci_pm_suspend_noirq(struct device *dev)
> > >   	if (!pci_dev->state_saved) {
> > >   		pci_save_state(pci_dev);
> > > +		/*
> > > +		 * There are systems (for example, Intel mobile chips since
> Coffee
> > > +		 * Lake) where the power drawn while suspended can be
> significantly
> > > +		 * reduced by disabling PTM on PCIe root ports as this allows the
> > > +		 * port to enter a lower-power PM state and the SoC to reach a
> > > +		 * lower-power idle state as a whole.
> > > +		 */
> > > +		if (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT)
> > > +			pci_disable_ptm(pci_dev);
> 
> Why is disabling PTM dependent on pci_dev->state_saved?  The point of
> this is to change the behavior of the device, and it seems like we
> want to do that regardless of whether the driver has used
> pci_save_state().
> 

Because we use the saved state to restore PTM on the root port. 
And it's under this condition that the root port state gets saved.

> Bjorn

WARNING: multiple messages have this Message-ID (diff)
From: "Jingar, Rajvi" <rajvi.jingar@intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: "sathyanarayanan.kuppuswamy@linux.intel.com"
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"koba.ko@canonical.com" <koba.ko@canonical.com>,
	Kai-Heng Feng <kai.heng.feng@canonical.com>,
	Oliver O'Halloran <oohall@gmail.com>,
	"david.e.box@linux.intel.com" <david.e.box@linux.intel.com>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"mika.westerberg@linux.intel.com"
	<mika.westerberg@linux.intel.com>,
	"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>
Subject: RE: [PATCH v4 2/2] PCI/PM: Fix pci_pm_suspend_noirq() to disable PTM
Date: Sat, 23 Apr 2022 00:43:14 +0000	[thread overview]
Message-ID: <SJ0PR11MB507047C0109C5163EF20D9AE9EF69@SJ0PR11MB5070.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20220422222446.GA1522716@bhelgaas>


> -----Original Message-----
> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: Friday, April 22, 2022 3:25 PM
> To: Jingar, Rajvi <rajvi.jingar@intel.com>
> Cc: bhelgaas@google.com; david.e.box@linux.intel.com; linux-
> pci@vger.kernel.org; linux-kernel@vger.kernel.org; linux-pm@vger.kernel.org;
> Wysocki, Rafael J <rafael.j.wysocki@intel.com>; Kai-Heng Feng
> <kai.heng.feng@canonical.com>; mika.westerberg@linux.intel.com;
> koba.ko@canonical.com; baolu.lu@linux.intel.com;
> sathyanarayanan.kuppuswamy@linux.intel.com; Russell Currey
> <ruscur@russell.cc>; Oliver O'Halloran <oohall@gmail.com>; linuxppc-
> dev@lists.ozlabs.org
> Subject: Re: [PATCH v4 2/2] PCI/PM: Fix pci_pm_suspend_noirq() to disable PTM
> 
> [+cc other folks interested in PTM from
> https://lore.kernel.org/r/20220408153159.106741-1-
> kai.heng.feng@canonical.com]
> 
> On Thu, Apr 14, 2022 at 07:54:02PM +0200, Rafael J. Wysocki wrote:
> > On 3/25/2022 8:50 PM, Rajvi Jingar wrote:
> > > For the PCIe devices (like nvme) that do not go into D3 state still need to
> > > disable PTM on PCIe root ports to allow the port to enter a lower-power PM
> > > state and the SoC to reach a lower-power idle state as a whole. Move the
> > > pci_disable_ptm() out of pci_prepare_to_sleep() as this code path is not
> > > followed for devices that do not go into D3. This patch fixes the issue
> > > seen on Dell XPS 9300 with Ice Lake CPU and Dell Precision 5530 with Coffee
> > > Lake CPU platforms to get improved residency in low power idle states.
> > >
> > > Fixes: a697f072f5da ("PCI: Disable PTM during suspend to save power")
> > > Signed-off-by: Rajvi Jingar <rajvi.jingar@intel.com>
> > > Suggested-by: David E. Box <david.e.box@linux.intel.com>
> 
> > > ---
> > >   v1 -> v2: add Fixes tag in commit message
> > >   v2 -> v3: move changelog after "---" marker
> > >   v3 -> v4: add "---" marker after changelog
> > > ---
> > >   drivers/pci/pci-driver.c | 10 ++++++++++
> > >   drivers/pci/pci.c        | 10 ----------
> > >   2 files changed, 10 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
> > > index 8b55a90126a2..ab733374a260 100644
> > > --- a/drivers/pci/pci-driver.c
> > > +++ b/drivers/pci/pci-driver.c
> > > @@ -847,6 +847,16 @@ static int pci_pm_suspend_noirq(struct device *dev)
> > >   	if (!pci_dev->state_saved) {
> > >   		pci_save_state(pci_dev);
> > > +		/*
> > > +		 * There are systems (for example, Intel mobile chips since
> Coffee
> > > +		 * Lake) where the power drawn while suspended can be
> significantly
> > > +		 * reduced by disabling PTM on PCIe root ports as this allows the
> > > +		 * port to enter a lower-power PM state and the SoC to reach a
> > > +		 * lower-power idle state as a whole.
> > > +		 */
> > > +		if (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT)
> > > +			pci_disable_ptm(pci_dev);
> 
> Why is disabling PTM dependent on pci_dev->state_saved?  The point of
> this is to change the behavior of the device, and it seems like we
> want to do that regardless of whether the driver has used
> pci_save_state().
> 

Because we use the saved state to restore PTM on the root port. 
And it's under this condition that the root port state gets saved.

> Bjorn

  reply	other threads:[~2022-04-23  0:43 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20220325195053.769373-1-rajvi.jingar@intel.com>
2022-04-14 17:53 ` [PATCH v4 1/2] PCI/PM: refactor pci_pm_suspend_noirq() Rafael J. Wysocki
2022-04-20 16:30   ` Bjorn Helgaas
     [not found] ` <20220325195053.769373-2-rajvi.jingar@intel.com>
2022-04-14 17:54   ` [PATCH v4 2/2] PCI/PM: Fix pci_pm_suspend_noirq() to disable PTM Rafael J. Wysocki
2022-04-22 22:24     ` Bjorn Helgaas
2022-04-22 22:24       ` Bjorn Helgaas
2022-04-23  0:43       ` Jingar, Rajvi [this message]
2022-04-23  0:43         ` Jingar, Rajvi
2022-04-23 15:01         ` Bjorn Helgaas
2022-04-23 15:01           ` Bjorn Helgaas
2022-04-25 18:32           ` David E. Box
2022-04-25 18:32             ` David E. Box
2022-04-25 18:39             ` Rafael J. Wysocki
2022-04-25 18:39               ` Rafael J. Wysocki
2022-04-26 16:50             ` Bjorn Helgaas
2022-04-26 16:50               ` Bjorn Helgaas
2022-04-27  4:22               ` David E. Box
2022-04-27  4:22                 ` David E. Box

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SJ0PR11MB507047C0109C5163EF20D9AE9EF69@SJ0PR11MB5070.namprd11.prod.outlook.com \
    --to=rajvi.jingar@intel.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=david.e.box@linux.intel.com \
    --cc=helgaas@kernel.org \
    --cc=kai.heng.feng@canonical.com \
    --cc=koba.ko@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=oohall@gmail.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=ruscur@russell.cc \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.