Linux-PCI Archive on lore.kernel.org
 help / color / Atom feed
From: Paul Menzel <pmenzel@molgen.mpg.de>
To: Mika Westerberg <mika.westerberg@linux.intel.com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	linux-pci@vger.kernel.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [Regression] pcie_wait_for_link_delay (1132.853 ms @ 5039.414431)
Date: Tue, 6 Aug 2019 11:20:37 +0200
Message-ID: <2857501d-c167-547d-c57d-d5d24ea1f1dc@molgen.mpg.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 3183 bytes --]

Dear Mika, dear Rafael,


Commit c2bf1fc2 (PCI: Add missing link delays required by the PCIe spec) [1] 
increases the resume time from ACPI S3 on a desktop system Dell OptiPlex 5040
by one second. It looks like this is expected from the commit message, but
breaks existing systems with boot time requirements. I measured this with the
help of the pm-graph script `sleepgraph.py` [2].

    0000:00:01.0 resume_noirq (1134.715 ms @ 5039.412578 to 5040.547293)
        …
            pcie_wait_for_link_delay (1132.853 ms @ 5039.414431)

$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:191f] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07)
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] [8086:a102] (rev 31)
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a146] (rev 31)
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I219-V [8086:15b8] (rev 31)
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Oland XT [Radeon HD 8670 / R7 250/350] [1002:6610] (rev 81)
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series] [1002:aab0]
02:00.0 PCI bridge [0604]: Texas Instruments XIO2001 PCI Express-to-PCI Bridge [104c:8240]

So, it’s about the internal Intel graphics device, which is not used on this 
system, as there is an external AMD graphics device plugged in.

As far as I understand it, it’s a bug in the firmware, that a one second delay
is specified?

Anyway, there is such firmware out there, so I’d like to avoid the time
increases.

As a first step, the commit should be extended to print a warning (maybe if
`initcall_debug` is specified), when the delay is higher than let’s say 50(?)
ms. Also better documentation how to debug these delays would be appreciated.

If there is no easy solution, it’d be great if the commit could be reverted for
now, and a better solution be discussed for the next release.


Kind regards,

Paul


[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c2bf1fc212f7e6f25ace1af8f0b3ac061ea48ba5
[2]: https://github.com/intel/pm-graph


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5174 bytes --]

             reply index

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-06  9:20 Paul Menzel [this message]
2019-08-06  9:36 ` Mika Westerberg
2019-08-06  9:57   ` Paul Menzel
2019-08-06 11:31     ` Mika Westerberg
2019-08-06 14:02       ` Paul Menzel
2019-08-06 14:15         ` Mika Westerberg
2019-08-06 19:56       ` Matthias Andree
2019-08-07 10:06         ` Mika Westerberg

Reply instructions:

You may reply publically 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=2857501d-c167-547d-c57d-d5d24ea1f1dc@molgen.mpg.de \
    --to=pmenzel@molgen.mpg.de \
    --cc=bhelgaas@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael.j.wysocki@intel.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

Linux-PCI Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-pci/0 linux-pci/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-pci linux-pci/ https://lore.kernel.org/linux-pci \
		linux-pci@vger.kernel.org linux-pci@archiver.kernel.org
	public-inbox-index linux-pci


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-pci


AGPL code for this site: git clone https://public-inbox.org/ public-inbox