Re: [PATCH V4] PCI: handle CRS returned by device after FLR

From: Bjorn Helgaas
Date: Thu Jul 13 2017 - 19:39:30 EST


On Thu, Jul 13, 2017 at 11:44:12AM -0400, Sinan Kaya wrote:
> On 7/13/2017 8:17 AM, Bjorn Helgaas wrote:
> >> he spec is calling to wait up to 1 seconds if the device is sending CRS.
> >> The NVMe device seems to be requiring more. Relax this up to 60 seconds.
> > Can you add a pointer to the "1 second" requirement in the spec here?
> > We use 60 seconds in pci_scan_device() and acpiphp_add_context(). Is
> > there a basis in the spec for the 60 second timeout?
>
> This does not specify a hard limit above on how long SW need to wait.

I wouldn't expect a *maximum* time we can wait. I'm looking for the
minimum times the spec requires.

If you're claiming "the spec is calling to wait up to 1 second", I
just want to know where in the spec it says that. That helps in the
future when we need to maintain code like this.

> If I remember it right from CRS commit messages, 60 seconds was coming from
> some PCIe switch taking too long to boot.

If you have a pointer to this, please include it. The earliest thing
I can find is when Linux was imported into git (1da177e4c3f4
("Linux-2.6.12-rc2")), which includes a 60 second timeout:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/probe.c?id=1da177e4c3f4#n686