From: "Limonciello, Mario" <mario.limonciello@amd.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>,
bhelgaas@google.com,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Vidya Sagar <vidyas@nvidia.com>,
Michael Bottini <michael.a.bottini@linux.intel.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] PCI/ASPM: Enable ASPM on external PCIe devices
Date: Tue, 20 Jun 2023 13:36:59 -0500 [thread overview]
Message-ID: <1b4b2c6c-8119-95fd-8958-dbbecc66510c@amd.com> (raw)
In-Reply-To: <20230620182851.GA52252@bhelgaas>
<snip>
>> A variety of Intel chipsets don't support lane width switching
>> or speed switching. When ASPM has been enabled on a dGPU,
>> these features are utilized and breakage ensues.
> Maybe this helps explain all the completely unmaintainable ASPM
> garbage in amdgpu and radeon.
>
> If these devices are broken, we need quirks for them.
The problem is which device do you consider "broken"?
The dGPU that uses these features when the platform advertises ASPM
or the chipset which doesn't support the features that the device
uses when ASPM is active?
With this problem I'm talking about the dGPU works fine on hosts
that support these features.
KH has a lot more experience with ASPM issues and hopefully has some
other examples to share.
> We can't avoid
> ASPM in general just because random devices break.
I'm not advocating to avoid it in general, I'm saying we shouldn't
be turning it on across the board for all devices if the platform had
it off initially via a kernel command line option or Kconfig.
>> There are various methods to try to mitigate the impact both in
>> firmware and driver code.
>>
>>> This feels like a real problem to me. There are existing mechanisms
>>> (ACPI_FADT_NO_ASPM and _OSC PCIe cap ownership) the platform can use
>>> to prevent the OS from using ASPM.
>>>
>>> If vendors assume that *in addition*, the OS will pay attention to
>>> whatever ASPM configuration BIOS did, that's a major disconnect. We
>>> don't do anything like that for other PCI features, and I'm not aware
>>> of any restriction like that being documented.
>> With both of those policies in place, how did we get into
>> the situation of having configuration options and knobs?
> The kernel parameters and config options been there pretty much from
> the beginning. We didn't have the per-device sysfs knobs until very
> recently.
Ah, I see.
>
>>>> I think the pragmatic way to approach it is to (essentially) apply
>>>> the policy as BIOS defaults and allow overrides from that.
>>> Do you mean that when enumerating a device (at boot-time or hot-add
>>> time), we would read the current ASPM config but not change it? And
>>> users could use the sysfs knobs to enable/disable ASPM as desired?
>> Yes.
> Hot-added devices power up with ASPM disabled. This policy would mean
> the user has to explicitly enable it, which doesn't seem practical to
> me.
Could we maybe have the hot added devices follow the policy of
the bridge they're connected to by default?
>
>>> That wouldn't solve the problem Kai-Heng is trying to solve.
>> Alone it wouldn't; but if you treated the i225 PCIe device
>> connected to the system as a "quirk" to apply ASPM policy
>> from the parent device to this child device it could.
> I want quirks for BROKEN devices. Quirks for working hardware is a
> maintenance nightmare.
>
> Bjorn
If you follow my idea of hot added devices the policy follows
the parent would it work for the i225 PCIe device case?
next prev parent reply other threads:[~2023-06-20 18:37 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-15 7:04 Kai-Heng Feng
2023-06-15 14:02 ` Ilpo Järvinen
2023-06-15 17:07 ` Sathyanarayanan Kuppuswamy
2023-06-16 2:37 ` Kai-Heng Feng
2023-06-15 17:12 ` Bjorn Helgaas
2023-06-16 3:01 ` Kai-Heng Feng
2023-06-19 16:16 ` Limonciello, Mario
2023-06-19 21:37 ` Bjorn Helgaas
2023-06-19 22:09 ` Limonciello, Mario
2023-06-20 18:28 ` Bjorn Helgaas
2023-06-20 18:36 ` Limonciello, Mario [this message]
2023-06-22 23:06 ` Bjorn Helgaas
2023-06-27 8:35 ` Kai-Heng Feng
2023-06-27 20:54 ` Bjorn Helgaas
2023-06-28 5:09 ` Kai-Heng Feng
2023-07-05 20:06 ` [Intel-wired-lan] " Bjorn Helgaas
2023-07-06 4:07 ` Mario Limonciello
2023-07-14 8:17 ` Kai-Heng Feng
2023-07-14 16:37 ` Mario Limonciello
2023-07-17 3:34 ` Kai-Heng Feng
2023-07-17 16:51 ` Limonciello, Mario
2023-07-18 19:24 ` Bjorn Helgaas
2023-08-11 8:34 ` Kai-Heng Feng
2023-06-16 22:01 ` Bjorn Helgaas
2023-06-21 3:08 ` Kai-Heng Feng
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=1b4b2c6c-8119-95fd-8958-dbbecc66510c@amd.com \
--to=mario.limonciello@amd.com \
--cc=bhelgaas@google.com \
--cc=helgaas@kernel.org \
--cc=kai.heng.feng@canonical.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=michael.a.bottini@linux.intel.com \
--cc=mika.westerberg@linux.intel.com \
--cc=rafael.j.wysocki@intel.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=vidyas@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®