From: Thierry Reding <treding@nvidia.com>
To: Vidya Sagar <vidyas@nvidia.com>
Cc: <bhelgaas@google.com>, <lorenzo.pieralisi@arm.com>,
<jonathanh@nvidia.com>, <linux-tegra@vger.kernel.org>,
<linux-pci@vger.kernel.org>, <kthota@nvidia.com>,
<mmaddireddy@nvidia.com>, <sagar.tv@gmail.com>,
Sinan Kaya <okaya@kernel.org>
Subject: Re: [PATCH] PCI: Add CRS timeout for pci_device_is_present()
Date: Mon, 14 Oct 2019 10:20:23 +0200 [thread overview]
Message-ID: <20191014082023.GA232162@ulmo> (raw)
In-Reply-To: <20191005182129.32538-1-vidyas@nvidia.com>
[-- Attachment #1: Type: text/plain, Size: 2458 bytes --]
On Sat, Oct 05, 2019 at 11:51:29PM +0530, Vidya Sagar wrote:
> Adds a 60 seconds timeout to consider CRS (Configuration request Retry
> Status) from a downstream device when Vendor ID read is attempted by
> an upstream device. This helps to work with devices that return CRS
> during system resume. This also makes pci_device_is_present() consistent
> with the probe path where 60 seconds timeout is already being used.
>
> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
> ---
> drivers/pci/pci.c | 3 ++-
> drivers/pci/pci.h | 2 ++
> drivers/pci/probe.c | 2 +-
> 3 files changed, 5 insertions(+), 2 deletions(-)
I think this makes sense, so:
Reviewed-by: Thierry Reding <treding@nvidia.com>
However, it looks like Sinan has researched this extensively in the past
and gave a presentation on this at Plumbers in 2017:
https://blog.linuxplumbersconf.org/2017/ocw/system/presentations/4732/original/crs.pdf
Adding Sinan to see if he has any concerns about this, since resume time
is explicitly mentioned in the above slides.
Thierry
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 95dc78ebdded..3ab9f6d3c8a6 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -5905,7 +5905,8 @@ bool pci_device_is_present(struct pci_dev *pdev)
>
> if (pci_dev_is_disconnected(pdev))
> return false;
> - return pci_bus_read_dev_vendor_id(pdev->bus, pdev->devfn, &v, 0);
> + return pci_bus_read_dev_vendor_id(pdev->bus, pdev->devfn, &v,
> + PCI_CRS_TIMEOUT);
> }
> EXPORT_SYMBOL_GPL(pci_device_is_present);
>
> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
> index 3f6947ee3324..aa25c5fdc6a5 100644
> --- a/drivers/pci/pci.h
> +++ b/drivers/pci/pci.h
> @@ -4,6 +4,8 @@
>
> #include <linux/pci.h>
>
> +#define PCI_CRS_TIMEOUT (60 * 1000) /* 60 sec*/
> +
> #define PCI_FIND_CAP_TTL 48
>
> #define PCI_VSEC_ID_INTEL_TBT 0x1234 /* Thunderbolt */
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 7c5d68b807ef..6e44a03283c8 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -2258,7 +2258,7 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
> struct pci_dev *dev;
> u32 l;
>
> - if (!pci_bus_read_dev_vendor_id(bus, devfn, &l, 60*1000))
> + if (!pci_bus_read_dev_vendor_id(bus, devfn, &l, PCI_CRS_TIMEOUT))
> return NULL;
>
> dev = pci_alloc_dev(bus);
> --
> 2.17.1
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-10-14 8:20 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-05 18:21 [PATCH] PCI: Add CRS timeout for pci_device_is_present() Vidya Sagar
2019-10-14 8:20 ` Thierry Reding [this message]
2019-10-14 20:21 ` Sinan Kaya
2019-10-15 9:30 ` Thierry Reding
2019-10-15 11:10 ` Sinan Kaya
2019-10-15 12:14 ` Vidya Sagar
[not found] ` <afa16546-e63d-6eba-8be0-8e52339cd100@nvidia.com>
2019-10-25 11:58 ` Vidya Sagar
2019-10-26 13:59 ` Sinan Kaya
2019-11-04 11:43 ` Vidya Sagar
2019-11-04 16:52 ` Lorenzo Pieralisi
2019-11-04 17:39 ` Bjorn Helgaas
2019-11-05 10:55 ` Rafael J. Wysocki
2019-11-06 16:41 ` Bjorn Helgaas
2019-11-11 6:01 ` Vidya Sagar
2019-11-11 22:32 ` Bjorn Helgaas
2019-11-12 12:59 ` Thierry Reding
2019-11-12 14:21 ` Bjorn Helgaas
2019-11-12 17:59 ` Vidya Sagar
2019-11-12 18:58 ` Bjorn Helgaas
2019-11-13 5:39 ` Vidya Sagar
2019-11-13 11:20 ` Thierry Reding
2019-11-14 18:36 ` Bjorn Helgaas
2019-11-15 10:04 ` Vidya Sagar
2019-11-15 22:36 ` Bjorn Helgaas
2019-11-18 15:18 ` Vidya Sagar
2019-11-12 17:59 ` Vidya Sagar
2019-10-15 12:03 ` Vidya Sagar
2019-10-15 11:34 ` Vidya Sagar
2019-10-14 10:45 ` Andrew Murray
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=20191014082023.GA232162@ulmo \
--to=treding@nvidia.com \
--cc=bhelgaas@google.com \
--cc=jonathanh@nvidia.com \
--cc=kthota@nvidia.com \
--cc=linux-pci@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mmaddireddy@nvidia.com \
--cc=okaya@kernel.org \
--cc=sagar.tv@gmail.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 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.