From: Bjorn Helgaas <helgaas@kernel.org>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Kedar A Dongre <kedar.a.dongre@intel.com>,
Lukas Wunner <lukas@wunner.de>,
linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: Re: [PATCH] PCI: Blacklist power management of Gigabyte X299 DESIGNARE EX PCIe ports
Date: Tue, 18 Dec 2018 14:58:50 -0600 [thread overview]
Message-ID: <20181218205850.GA12763@google.com> (raw)
In-Reply-To: <20181218085518.GI2469@lahna.fi.intel.com>
On Tue, Dec 18, 2018 at 10:55:18AM +0200, Mika Westerberg wrote:
> On Mon, Dec 17, 2018 at 02:28:27PM -0600, Bjorn Helgaas wrote:
> > On Tue, Dec 04, 2018 at 02:20:48PM +0300, Mika Westerberg wrote:
> > > Gigabyte X299 DESIGNARE EX motherboard has one PCIe root port that is
> > > connected to an Alpine Ridge Thunderbolt controller. This port has slot
> > > implemented bit set in the config space but other than that it is not
> > > hotplug capable in the sense we are expecting in Linux (it has
> > > dev->is_hotplug_bridge set to 0):
> > >
> > > 00:1c.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5
> > > Bus: primary=00, secondary=05, subordinate=46, sec-latency=0
> > > Memory behind bridge: 78000000-8fffffff [size=384M]
> > > Prefetchable memory behind bridge: 00003800f8000000-00003800ffffffff [size=128M]
> > > ...
> > > Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
> > > ...
> > > SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > Slot #8, PowerLimit 25.000W; Interlock- NoCompl+
> > > SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
> > > SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
> > > Changed: MRL- PresDet+ LinkState+
> > >
> > > This system is using ACPI based hotplug to notify the OS that it needs
> > > to rescan the PCI bus (ACPI hotplug).
> > >
> > > If there is nothing connected in any of the Thunderbolt ports the root
> > > port will not have any runtime PM active children and is thus
> > > automatically runtime suspended pretty soon after boot by PCI PM core.
> > > Now, when a device is connected the BIOS SMI handler responsible for
> > > enumerating newly added devices is not able to find anything because the
> > > port is in D3.
> >
> > Ugh. I don't see how this is a maintainable solution. Are we going
> > to have to just update this blacklist empirically as we get reports of
> > systems that are "broken"?
>
> I was hoping not but for that we would need to have some means to
> identify these. What you suggest below might be one way to avoid adding
> the blacklist.
>
> > I say "broken" because I don't think we can point to anything here
> > that doesn't conform to the specs, so maybe we tripped over something
> > that *should* be covered in the spec, or maybe we're just not
> > interpreting something correctly.
>
> That is indeed possible.
>
> > For example, it looks like PCI_EXP_FLAGS_SLOT is set, but Linux
> > basically ignores it. Maybe if PCI_EXP_FLAGS_SLOT is set but we
> > aren't using pciehp, we should assume any hotplug would be handled via
> > acpiphp? And in that case, we should avoid doing anything that would
> > prevent platform firmware from enumerating things below the bridge?
>
> I don't see why that would not work. This could cause "power regression"
> on some systems but I think that's better than systems that do not work
> at all.
Yeah, I think that would be better, assuming it wouldn't cause a flood
of power regressions. I'd even rather have a whitelist of systems
where we use acpiphp and it's safe to do power management.
> > Is there a bugzilla or any other URL we could include here to help with
> > future changes in this area?
>
> No, this was reported internally.
>
> I can file one if you think it is helpful.
I think a kernel.org bugzilla that archived the "lspci -vv", a dmesg
log, and an acpidump might be helpful.
Bjorn
next prev parent reply other threads:[~2018-12-18 20:58 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-04 11:20 [PATCH] PCI: Blacklist power management of Gigabyte X299 DESIGNARE EX PCIe ports Mika Westerberg
2018-12-04 17:55 ` Rafael J. Wysocki
2018-12-04 18:34 ` Mika Westerberg
2018-12-04 20:40 ` Lukas Wunner
2018-12-05 9:20 ` Mika Westerberg
2018-12-05 9:48 ` Lukas Wunner
2018-12-05 10:40 ` Mika Westerberg
2018-12-05 13:22 ` Lukas Wunner
2018-12-05 13:46 ` Mika Westerberg
2018-12-14 9:24 ` Mika Westerberg
2018-12-17 20:28 ` Bjorn Helgaas
2018-12-18 8:55 ` Mika Westerberg
2018-12-18 20:58 ` Bjorn Helgaas [this message]
2018-12-19 13:23 ` Mika Westerberg
2018-12-19 14:45 ` Bjorn Helgaas
2018-12-19 15:15 ` Mika Westerberg
2018-12-19 17:09 ` Lukas Wunner
2018-12-20 10:06 ` Mika Westerberg
2018-12-20 10:23 ` Rafael J. Wysocki
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=20181218205850.GA12763@google.com \
--to=helgaas@kernel.org \
--cc=kedar.a.dongre@intel.com \
--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.