[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220113145857.GA347384@bhelgaas>
Date: Thu, 13 Jan 2022 08:58:57 -0600
From: Bjorn Helgaas <helgaas@...nel.org>
To: Yao Hongbo <yaohongbo@...ux.alibaba.com>
Cc: bhelgaas@...gle.com, lukas@...ner.de,
zhangliguang@...ux.alibaba.com,
alikernel-developer@...ux.alibaba.com, linux-pci@...r.kernel.org,
linux-kernel@...r.kernel.org,
"Rafael J. Wysocki" <rjw@...ysocki.net>
Subject: Re: [RFC PATCH v2] PCI: Waiting command completed in
get_port_device_capability()
On Thu, Jan 13, 2022 at 03:34:41PM +0800, Yao Hongbo wrote:
> 在 2022/1/13 上午2:01, Bjorn Helgaas 写道:
> > On Wed, Jan 12, 2022 at 03:33:25PM +0800, Yao Hongbo wrote:
> >> 在 2022/1/12 上午2:55, Bjorn Helgaas 写道:
> >>> What kind of system are you seeing the problem on? It seems like it
> >>> should be safe to drop the HPIE and CCIE disable here for ACPI
> >>> systems. And *likely* we could do the same for non-ACPI systems,
> >>> though I have no experience there.
> >>
> >> Hi, Bjorn
> >> Thanks for your comments.
> >>
> >> The problem occurs on ACPI systems.
> >>
> >> acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
> >> acpi PNP0A08:00: _OSC: platform does not support [SHPCHotplug AER LTR DPC]
> >> acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME PCIeCapability]
> >>
> >> We clear HPIE and CCIE here because the firmware doesn't control
> >> Hotplug via __OSC.
> >>
> >> And on ACPI systems, we can also set pcie_ports=native, which will
> >> also encounter such problems.
> >
> > What happens if you just drop that call like the patch below?
> >
> > If that avoids the problem, then we can talk about whether we need to
> > worry about broken firmware in the non-ACPI or "pcie_ports=native"
> > cases.
>
> Hi, Bjorn.
> This can avoid the problem currently.
Thanks for collecting that data!
> But i'm not sure if removing this code will introduce other problems,
> such as suprious hotplug before probing hotplug service.
I don't think spurious hotplug before probing the hotplug service is
an issue because there is always a window like this. It's either
between:
A: Handoff from firmware to OS
B: get_port_device_capability()
or between:
A: Handoff from firmware to OS
C: pciehp initialization
Either way there is *some* window, and we have to decide how to deal
with it. The exact duration is not very important.
Bjorn
Powered by blists - more mailing lists