All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukas Wunner <lukas@wunner.de>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>, Keith Busch <keith.busch@intel.com>,
	Linux PCI <linux-pci@vger.kernel.org>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>
Subject: Re: [PATCH 1/2] PCI/DPC: Disable interrupt generation during suspend
Date: Sat, 24 Mar 2018 14:48:07 +0100	[thread overview]
Message-ID: <20180324134807.GA2627@wunner.de> (raw)
In-Reply-To: <20180322193630.GB252023@bhelgaas-glaptop.roam.corp.google.com>

On Thu, Mar 22, 2018 at 02:36:30PM -0500, Bjorn Helgaas wrote:
> I hope we can avoid adding suspend_late/resume_early callbacks in
> struct pcie_port_service_driver,

I'm fairly certain that we cannot avoid adding at least a ->resume_noirq
callback to struct pcie_port_service_driver to fix a pciehp use case:

On ->resume_noirq the PCI core walks down the hierarchy to put every
device in D0 and restore its state (with a few exceptions such as direct
complete).  However with hotplug ports, it's possible that the user has
unplugged devices while the system was asleep, or replaced them with
other devices.  That's a very real use case with Thunderbolt and we're
handling it poorly or not at all currently.  We need to check if the
devices below a hotplug port are still there or have been replaced
(can probably be recognized by looking at vendor/device IDs across the
entire sub-hierarchy) during the ->resume_noirq phase.  We could mark
them with pci_dev_set_disconnected(), then skip putting them into D0
if that flag has been set.


> @@ -102,7 +88,6 @@ static const struct dev_pm_ops pcie_portdrv_pm_ops = {
>  	.thaw		= pcie_port_device_resume,
>  	.poweroff	= pcie_port_device_suspend,
>  	.restore	= pcie_port_device_resume,
> -	.resume_noirq	= pcie_port_resume_noirq,
>  	.runtime_suspend = pcie_port_runtime_suspend,
>  	.runtime_resume	= pcie_port_runtime_resume,
>  	.runtime_idle	= pcie_port_runtime_idle,

So the above would have to be reverted unfortunately when we fix this
use case.

Thanks,

Lukas

  parent reply	other threads:[~2018-03-24 13:48 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-14 11:41 [PATCH 1/2] PCI/DPC: Disable interrupt generation during suspend Mika Westerberg
2018-03-14 11:41 ` [PATCH 2/2] PCI/DPC: Do not enable DPC if AER control is not allowed by the BIOS Mika Westerberg
2018-03-14 11:50   ` Rafael J. Wysocki
2018-03-14 12:07     ` Mika Westerberg
2018-03-14 11:48 ` [PATCH 1/2] PCI/DPC: Disable interrupt generation during suspend Rafael J. Wysocki
2018-03-14 12:05   ` Mika Westerberg
2018-03-14 12:33     ` Lukas Wunner
2018-03-20 10:45       ` Mika Westerberg
2018-03-20 11:35         ` Lukas Wunner
2018-03-22 10:45           ` Lukas Wunner
2018-03-22 16:53             ` Mika Westerberg
2018-03-22 17:39               ` Lukas Wunner
2018-03-22 19:36                 ` Bjorn Helgaas
2018-03-23 11:18                   ` Mika Westerberg
2018-03-23 21:08                     ` Bjorn Helgaas
2018-03-23 21:11                       ` Rafael J. Wysocki
2018-03-23 22:01                         ` Bjorn Helgaas
2018-03-24 10:48                           ` Rafael J. Wysocki
2018-03-24 12:15                           ` Lukas Wunner
2018-03-24 13:48                   ` Lukas Wunner [this message]
2018-03-24 14:09                     ` Bjorn Helgaas
2018-03-26  9:55                       ` Mika Westerberg

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=20180324134807.GA2627@wunner.de \
    --to=lukas@wunner.de \
    --cc=bhelgaas@google.com \
    --cc=helgaas@kernel.org \
    --cc=keith.busch@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rjw@rjwysocki.net \
    /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.