From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Mahesh J Salgaonkar <mahesh@linux.ibm.com>,
oohall@gmail.com, Lukas Wunner <lukas@wunner.de>,
Chris Chiu <chris.chiu@canonical.com>,
linux-pci@vger.kernel.org
Subject: Re: [PATCH] PCI/PM: Wait longer after reset when active link reporting is supported
Date: Thu, 23 Mar 2023 11:41:43 +0200 [thread overview]
Message-ID: <20230323094143.GF62143@black.fi.intel.com> (raw)
In-Reply-To: <20230322221624.GA2497123@bhelgaas>
Hi Bjorn,
On Wed, Mar 22, 2023 at 05:16:24PM -0500, Bjorn Helgaas wrote:
> On Tue, Mar 21, 2023 at 11:50:31AM +0200, Mika Westerberg wrote:
> > The PCIe spec prescribes that a device may take up to 1 second to
> > recover from reset and this same delay is prescribed when coming out of
> > D3cold (as that involves reset too). The device may extend this 1 second
> > delay through Request Retry Status completions and we accommondate for
> > that in Linux with 60 second cap, only in reset code path, not in resume
> > code path.
> >
> > However, a device has surfaced, namely Intel Titan Ridge xHCI, which
> > requires longer delay also in the resume code path. For this reason make
> > the resume code path to use this same extended delay than with the reset
> > path but only after the link has come up (active link reporting is
> > supported) so that we do not wait longer time for devices that have
> > become permanently innaccessible during system sleep, e.g because they
> > have been removed.
> >
> > While there move the two constants from the pci.h header into pci.c as
> > these are not used outside of that file anymore.
> >
> > Reported-by: Chris Chiu <chris.chiu@canonical.com>
> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=216728
> > Cc: Lukas Wunner <lukas@wunner.de>
> > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
>
> Lukas just added the "timeout" parameter with ac91e6980563 ("PCI:
> Unify delay handling for reset and resume"), so I'm going to look for
> his ack for this.
Of course :)
> After ac91e6980563, we called pci_bridge_wait_for_secondary_bus() with
> timeouts of either:
>
> 60s for reset (pci_bridge_secondary_bus_reset() or
> dpc_reset_link()), or
>
> 1s for resume (pci_pm_resume_noirq() or pci_pm_runtime_resume() via
> pci_pm_bridge_power_up_actions())
>
> If I'm reading this right, the main changes of this patch are:
>
> - For slow links (<= 5 GT/s), we sleep 100ms, then previously waited
> up to 1s (resume) or 60s (reset) for the device to be ready. Now
> we will wait a max of 1s for both resume and reset.
>
> - For fast links (> 5 GT/s) we wait up to 100ms for the link to come
> up and fail if it does not. If the link did come up in 100ms, we
> previously waited up to 1s (resume) or 60s (reset). Now we will
> wait up to 60s for both resume and reset.
>
> So this *reduces* the time we wait for slow links after reset, and
> *increases* the time for fast links after resume. Right?
Yes, this is correct.
next prev parent reply other threads:[~2023-03-23 9:41 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-21 9:50 [PATCH] PCI/PM: Wait longer after reset when active link reporting is supported Mika Westerberg
2023-03-22 22:16 ` Bjorn Helgaas
2023-03-23 9:41 ` Mika Westerberg [this message]
2023-03-23 13:29 ` Mika Westerberg
2023-03-26 6:22 ` Lukas Wunner
2023-03-27 9:42 ` Mika Westerberg
2023-03-27 14:40 ` Bjorn Helgaas
2023-03-28 9:26 ` Mika Westerberg
2023-03-27 15:08 ` Sathyanarayanan Kuppuswamy
2023-03-28 9:29 ` Mika Westerberg
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=20230323094143.GF62143@black.fi.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=chris.chiu@canonical.com \
--cc=helgaas@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mahesh@linux.ibm.com \
--cc=oohall@gmail.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