From mboxrd@z Thu Jan 1 00:00:00 1970 From: jani.nikula@intel.com (Jani Nikula) Date: Wed, 24 Jan 2018 13:42:08 +0200 Subject: REGRESSION in c5552fde102f ("nvme: Enable autonomous power state transitions") Message-ID: <87shaveb5b.fsf@intel.com> Hi Andy, all - So this is an odd one. I'm getting display FIFO underruns in a very specific setting: Laptop display switched off, and an external display connected. Other combinations work fine. I've bisected this to c5552fde102f ("nvme: Enable autonomous power state transitions"), and, being baffled by the result, carefully checked this. There are no problems when running c5552fde102f^, with nvme_core.default_ps_max_latency_us=0, or after 'echo 0 > pm_qos_latency_tolerance_us'. With the last one, restoring the original value of 100000 brings the underruns back. I have no idea what the root cause mechanism here is, but the bisect is correct. Perhaps something to do with timing. I'd be happy to provide further details. I see that you have quirked one Samsung device. Incidentally, this Lenovo Yoga 910 (Kabylake, SunrisePoint LP PCH) also has a Samsung NVMe device, just a different one. Details below. I don't know what the failure mode in the quirked one is, so I don't know if this could be the same issue. BR, Jani. $ lspci -vvnn -s 02:00.0 02:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a804] (prog-if 02 [NVM Express]) Subsystem: Samsung Electronics Co Ltd Device [144d:a801] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- Capabilities: [168 v1] #19 Capabilities: [188 v1] Latency Tolerance Reporting Max snoop latency: 3145728ns Max no snoop latency: 3145728ns Capabilities: [190 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=10us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ T_CommonMode=0us LTR1.2_Threshold=163840ns L1SubCtl2: T_PwrOn=44us Kernel driver in use: nvme Kernel modules: nvme -- Jani Nikula, Intel Open Source Technology Center