* Question on generic PCI ACPI/DT device property wrt ASPM
@ 2025-09-16 19:48 Heiner Kallweit
2025-09-16 20:25 ` Bjorn Helgaas
0 siblings, 1 reply; 4+ messages in thread
From: Heiner Kallweit @ 2025-09-16 19:48 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas
Cc: devicetree@vger.kernel.org, linux-pci@vger.kernel.org
There are drivers (in my case r8169) disabling ASPM for a device per default
because there are known issues on a number of systems. However on other
systems ASPM works flawlessly, and vendors (especially of notebooks) would
like to (re-)enable ASPM for this device on such systems.
Reference:
https://lore.kernel.org/netdev/20250912072939.2553835-1-acelan.kao@canonical.com/
Realtek NICs are used on more or less every consumer device, and maintaining
long DMI-based whitelists wouldn't be too nice.
Therefore idea is to use a device property (working title: aspm-is-safe), that
can be set via ACPI or DT. In my case it's a PCIe NIC, but in general the
property could be applicable on every PCIe device.
So question is to which schema such a property would belong. Here?
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/pci/pci-ep.yaml?h=next-20250916
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Question on generic PCI ACPI/DT device property wrt ASPM
2025-09-16 19:48 Question on generic PCI ACPI/DT device property wrt ASPM Heiner Kallweit
@ 2025-09-16 20:25 ` Bjorn Helgaas
2025-09-16 20:56 ` Heiner Kallweit
0 siblings, 1 reply; 4+ messages in thread
From: Bjorn Helgaas @ 2025-09-16 20:25 UTC (permalink / raw)
To: Heiner Kallweit
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
devicetree, linux-pci, Chia-Lin Kao
[+cc AceLan]
On Tue, Sep 16, 2025 at 09:48:06PM +0200, Heiner Kallweit wrote:
> There are drivers (in my case r8169) disabling ASPM for a device per default
> because there are known issues on a number of systems. However on other
> systems ASPM works flawlessly, and vendors (especially of notebooks) would
> like to (re-)enable ASPM for this device on such systems.
I would definitely love to be able to fully enable ASPM on these
devices everywhere and rip the ASPM code out of r8169.
> Reference:
> https://lore.kernel.org/netdev/20250912072939.2553835-1-acelan.kao@canonical.com/
>
> Realtek NICs are used on more or less every consumer device, and maintaining
> long DMI-based whitelists wouldn't be too nice.
>
> Therefore idea is to use a device property (working title: aspm-is-safe), that
> can be set via ACPI or DT. In my case it's a PCIe NIC, but in general the
> property could be applicable on every PCIe device.
> So question is to which schema such a property would belong. Here?
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/pci/pci-ep.yaml?h=next-20250916
I'm not super enthused about yet more knobs to control ASPM based on
issues we don't completely understand.
Quirks that say "X is broken on this device" are to be expected, but I
have a hard time understanding a quirk that says "this feature works
as it's supposed to."
If ASPM works on some systems but not others, it's either because some
Downstream Ports leading to the NIC have defects or Linux (or BIOS) is
configuring ASPM incorrectly sometimes.
I think we just need to figure this out.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Question on generic PCI ACPI/DT device property wrt ASPM
2025-09-16 20:25 ` Bjorn Helgaas
@ 2025-09-16 20:56 ` Heiner Kallweit
2025-09-16 22:22 ` Bjorn Helgaas
0 siblings, 1 reply; 4+ messages in thread
From: Heiner Kallweit @ 2025-09-16 20:56 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
devicetree, linux-pci, Chia-Lin Kao
On 9/16/2025 10:25 PM, Bjorn Helgaas wrote:
> [+cc AceLan]
>
> On Tue, Sep 16, 2025 at 09:48:06PM +0200, Heiner Kallweit wrote:
>> There are drivers (in my case r8169) disabling ASPM for a device per default
>> because there are known issues on a number of systems. However on other
>> systems ASPM works flawlessly, and vendors (especially of notebooks) would
>> like to (re-)enable ASPM for this device on such systems.
>
> I would definitely love to be able to fully enable ASPM on these
> devices everywhere and rip the ASPM code out of r8169.
>
>> Reference:
>> https://lore.kernel.org/netdev/20250912072939.2553835-1-acelan.kao@canonical.com/
>>
>> Realtek NICs are used on more or less every consumer device, and maintaining
>> long DMI-based whitelists wouldn't be too nice.
>>
>> Therefore idea is to use a device property (working title: aspm-is-safe), that
>> can be set via ACPI or DT. In my case it's a PCIe NIC, but in general the
>> property could be applicable on every PCIe device.
>> So question is to which schema such a property would belong. Here?
>> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/pci/pci-ep.yaml?h=next-20250916
>
> I'm not super enthused about yet more knobs to control ASPM based on
> issues we don't completely understand.
>
> Quirks that say "X is broken on this device" are to be expected, but I
> have a hard time understanding a quirk that says "this feature works
> as it's supposed to."
>
> If ASPM works on some systems but not others, it's either because some
> Downstream Ports leading to the NIC have defects or Linux (or BIOS) is
> configuring ASPM incorrectly sometimes.
>
> I think we just need to figure this out.
I'm tempted to say we've been having the ASPM issues with Realtek NICs
for decades now, and so far there was no good way to "just figure this out".
Some issues:
- We only see the tip of the iceberg (the users reporting ASPM issues to
linux kernel bugzilla)
- These Realtek NICs are on hundreds of consumer mainboard/system types,
with endless chances of problematic NIC chip version / PCIe chipset / BIOS
issues combinations.
Therefore a whitelist property might be the least bad option.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Question on generic PCI ACPI/DT device property wrt ASPM
2025-09-16 20:56 ` Heiner Kallweit
@ 2025-09-16 22:22 ` Bjorn Helgaas
0 siblings, 0 replies; 4+ messages in thread
From: Bjorn Helgaas @ 2025-09-16 22:22 UTC (permalink / raw)
To: Heiner Kallweit
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
devicetree, linux-pci, Chia-Lin Kao
On Tue, Sep 16, 2025 at 10:56:26PM +0200, Heiner Kallweit wrote:
> On 9/16/2025 10:25 PM, Bjorn Helgaas wrote:
> > On Tue, Sep 16, 2025 at 09:48:06PM +0200, Heiner Kallweit wrote:
> >> There are drivers (in my case r8169) disabling ASPM for a device per default
> >> because there are known issues on a number of systems. However on other
> >> systems ASPM works flawlessly, and vendors (especially of notebooks) would
> >> like to (re-)enable ASPM for this device on such systems.
> >
> > I would definitely love to be able to fully enable ASPM on these
> > devices everywhere and rip the ASPM code out of r8169.
> >
> >> Reference:
> >> https://lore.kernel.org/netdev/20250912072939.2553835-1-acelan.kao@canonical.com/
> >>
> >> Realtek NICs are used on more or less every consumer device, and maintaining
> >> long DMI-based whitelists wouldn't be too nice.
> >>
> >> Therefore idea is to use a device property (working title: aspm-is-safe), that
> >> can be set via ACPI or DT. In my case it's a PCIe NIC, but in general the
> >> property could be applicable on every PCIe device.
> >> So question is to which schema such a property would belong. Here?
> >> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/pci/pci-ep.yaml?h=next-20250916
> >
> > I'm not super enthused about yet more knobs to control ASPM based on
> > issues we don't completely understand.
> >
> > Quirks that say "X is broken on this device" are to be expected, but I
> > have a hard time understanding a quirk that says "this feature works
> > as it's supposed to."
> >
> > If ASPM works on some systems but not others, it's either because some
> > Downstream Ports leading to the NIC have defects or Linux (or BIOS) is
> > configuring ASPM incorrectly sometimes.
> >
> > I think we just need to figure this out.
>
> I'm tempted to say we've been having the ASPM issues with Realtek NICs
> for decades now, and so far there was no good way to "just figure this out".
Yeah, that was a little flip, sorry.
My impression (perhaps unfounded) is that we don't have much solid
data about any situation where ASPM doesn't work reliably. I don't
remember seeing actual ASPM configurations or details from a PCIe
analyzer. Maybe Realtek has looked at this internally; I just don't
think I've seen it.
My suspicion is that it's mostly likely a misconfiguration because the
Root Ports are almost certainly used in many other machines. And if
the NIC works well in other machines, the NIC is most likely not
broken.
> Some issues:
> - We only see the tip of the iceberg (the users reporting ASPM issues to
> linux kernel bugzilla)
> - These Realtek NICs are on hundreds of consumer mainboard/system types,
> with endless chances of problematic NIC chip version / PCIe chipset / BIOS
> issues combinations.
>
> Therefore a whitelist property might be the least bad option.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-09-16 22:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-16 19:48 Question on generic PCI ACPI/DT device property wrt ASPM Heiner Kallweit
2025-09-16 20:25 ` Bjorn Helgaas
2025-09-16 20:56 ` Heiner Kallweit
2025-09-16 22:22 ` Bjorn Helgaas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox