All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Johan Hovold <johan@kernel.org>
Cc: "Johan Hovold" <johan+linaro@kernel.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Bjorn Andersson" <andersson@kernel.org>,
	"Konrad Dybcio" <konrad.dybcio@linaro.org>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
	linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH v2 04/12] PCI: qcom: Add support for disabling ASPM L0s in devicetree
Date: Wed, 28 Feb 2024 16:02:15 -0600	[thread overview]
Message-ID: <20240228220215.GA308296@bhelgaas> (raw)
In-Reply-To: <Zd3_y_jbY8Ic2F0Y@hovoldconsulting.com>

On Tue, Feb 27, 2024 at 04:29:15PM +0100, Johan Hovold wrote:
> On Fri, Feb 23, 2024 at 04:10:00PM -0600, Bjorn Helgaas wrote:
> > On Fri, Feb 23, 2024 at 04:21:16PM +0100, Johan Hovold wrote:
> > > Commit 9f4f3dfad8cf ("PCI: qcom: Enable ASPM for platforms supporting
> > > 1.9.0 ops") started enabling ASPM unconditionally when the hardware
> > > claims to support it. This triggers Correctable Errors for some PCIe
> > > devices on machines like the Lenovo ThinkPad X13s, which could indicate
> > > an incomplete driver ASPM implementation or that the hardware does in
> > > fact not support L0s.
> > 
> > Are there any more details about this?  Do the errors occur around
> > suspend/resume, a power state transition, or some other event?  Might
> > other DWC-based devices be susceptible?  Is there a specific driver
> > you suspect might be incomplete?
> 
> I see these errors when the devices in question are active as well as
> idle (not during suspend/resume). For example, when running iperf3 or
> fio to test the wifi and nvme, but I also see this occasionally for a
> wifi device which is (supposedly) not active (e.g. a handful errors over
> night).
> 
> I skimmed Qualcomm's driver and noted that there are some registers
> related to ASPM which that driver updates, while the mainline driver
> leaves them at their default settings, but I essentially only mentioned
> that the ASPM implementation may be incomplete as a theoretical
> possibility. The somewhat erratic ASPM behaviour for one of the modems
> also suggests that some further tweak/quirk may be needed, and I was
> hoping to catch Mani's interest by reporting it.
> 
> But based on what I've since heard from Qualcomm, it seems like these
> correctable error may be a known issue with the hardware (e.g. seen
> also with Windows), which is also why we decided to disable it for all
> controllers on these two platforms where I've seen this in v2.
>  
> > Do you want the DT approach because the problem is believed to be
> > platform-specific?  Otherwise, maybe we should consider reverting
> > 9f4f3dfad8cf until the problem is understood?
> 
> Enabling ASPM gave a very significant improvement in battery life on the
> Lenovo ThinkPad X13s, from 10.5 h to 15 h, so reverting is not really an
> option there.

Ah, I missed that you're only disabling L0s, but leaving L1 enabled,
thanks!

And given that the v1.9.0 ops that enable ASPM are used on a bunch of
platforms, and L0s seems to work fine on most of them, we wouldn't
want to disable L0s for everybody, so this seems like the right
solution.

Bjorn

  reply	other threads:[~2024-02-28 22:02 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-23 15:21 [PATCH v2 00/12] arm64: dts: qcom: sc8280xp: PCIe fixes and GICv3 ITS enable Johan Hovold
2024-02-23 15:21 ` [PATCH v2 01/12] dt-bindings: PCI: qcom: Allow 'required-opps' Johan Hovold
2024-02-23 15:21 ` [PATCH v2 02/12] dt-bindings: PCI: qcom: Do not require 'msi-map-mask' Johan Hovold
2024-02-23 15:21 ` [PATCH v2 03/12] dt-bindings: PCI: qcom: Allow 'aspm-no-l0s' Johan Hovold
2024-03-01 21:12   ` Rob Herring
2024-02-23 15:21 ` [PATCH v2 04/12] PCI: qcom: Add support for disabling ASPM L0s in devicetree Johan Hovold
2024-02-23 22:10   ` Bjorn Helgaas
2024-02-27 15:29     ` Johan Hovold
2024-02-28 22:02       ` Bjorn Helgaas [this message]
2024-02-23 15:21 ` [PATCH v2 05/12] arm64: dts: qcom: sc8280xp: add missing PCIe minimum OPP Johan Hovold
2024-02-23 21:25   ` Konrad Dybcio
2024-02-23 15:21 ` [PATCH v2 06/12] arm64: dts: qcom: sc8280xp-crd: limit pcie4 link speed Johan Hovold
2024-02-23 21:25   ` Konrad Dybcio
2024-02-23 15:21 ` [PATCH v2 07/12] arm64: dts: qcom: sc8280xp-x13s: " Johan Hovold
2024-02-23 21:25   ` Konrad Dybcio
2024-02-23 15:21 ` [PATCH v2 08/12] arm64: dts: qcom: sc8280xp-crd: disable ASPM L0s for NVMe Johan Hovold
2024-02-23 21:25   ` Konrad Dybcio
2024-02-23 15:21 ` [PATCH v2 09/12] arm64: dts: qcom: sc8280xp-crd: disable ASPM L0s for modem and Wi-Fi Johan Hovold
2024-02-23 15:21 ` [PATCH v2 10/12] arm64: dts: qcom: sc8280xp-x13s: disable ASPM L0s for Wi-Fi Johan Hovold
2024-02-23 15:21 ` [PATCH v2 11/12] arm64: dts: qcom: sc8280xp-x13s: disable ASPM L0s for NVMe and modem Johan Hovold
2024-02-23 15:21 ` [PATCH v2 12/12] arm64: dts: qcom: sc8280xp: enable GICv3 ITS for PCIe Johan Hovold
2024-02-28 22:08 ` [PATCH v2 00/12] arm64: dts: qcom: sc8280xp: PCIe fixes and GICv3 ITS enable Bjorn Helgaas
2024-02-28 23:30   ` Konrad Dybcio
2024-02-29  7:49     ` Johan Hovold
2024-02-29  7:45   ` Johan Hovold
2024-02-29 10:08   ` Manivannan Sadhasivam
2024-02-29 10:25     ` Johan Hovold
2024-02-29 12:24       ` Manivannan Sadhasivam
2024-02-29 13:10         ` Johan Hovold
2024-02-29 13:54           ` Manivannan Sadhasivam
2024-02-29 15:37             ` Johan Hovold
2024-03-01 12:24               ` Manivannan Sadhasivam
2024-03-01 12:46                 ` Johan Hovold
2024-03-01 13:14                   ` Manivannan Sadhasivam
2024-03-01 13:57                     ` Johan Hovold
2024-02-29 20:52           ` Bjorn Helgaas
2024-03-01  8:09             ` Johan Hovold
2024-03-01 15:01             ` Bjorn Andersson
2024-03-03 19:50 ` (subset) " Bjorn Andersson

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=20240228220215.GA308296@bhelgaas \
    --to=helgaas@kernel.org \
    --cc=andersson@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=johan+linaro@kernel.org \
    --cc=johan@kernel.org \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kw@linux.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=robh@kernel.org \
    --cc=stable@vger.kernel.org \
    /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.