All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Lukas Wunner <lukas@wunner.de>
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 09:09:50 -0500	[thread overview]
Message-ID: <20180324140950.GG210003@bhelgaas-glaptop.roam.corp.google.com> (raw)
In-Reply-To: <20180324134807.GA2627@wunner.de>

On Sat, Mar 24, 2018 at 02:48:07PM +0100, Lukas Wunner wrote:
> 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.

This is definitely a real issue, and I think it affects more than just
Thunderbolt.  We've never handled undocks very well either.

I certainly agree we need a way to handle this; I would just rather do
it by integrating pciehp and the other services more directly into the
PCI core instead of using the port driver.  Maybe we'll need a
short-term ->resume_noirq, but I don't think the port driver is a good
long-term solution.

Bjorn

  reply	other threads:[~2018-03-24 14:09 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
2018-03-24 14:09                     ` Bjorn Helgaas [this message]
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=20180324140950.GG210003@bhelgaas-glaptop.roam.corp.google.com \
    --to=helgaas@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=keith.busch@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lukas@wunner.de \
    --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.