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 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.