Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753318AbdLNPy4 (ORCPT ); Thu, 14 Dec 2017 10:54:56 -0500 Received: from cloudserver094114.home.net.pl ([79.96.170.134]:47367 "EHLO cloudserver094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752903AbdLNPyy (ORCPT ); Thu, 14 Dec 2017 10:54:54 -0500 From: "Rafael J. Wysocki" To: Thomas Gleixner Cc: Linus Torvalds , Bjorn Helgaas , Maarten Lankhorst , Michal Hocko , Andy Lutomirski , Linux Kernel Mailing List , the arch/x86 maintainers , Daniel Vetter , Bjorn Helgaas , "Rafael J. Wysocki" , linux-pci@vger.kernel.org, linux-pm@vger.kernel.org Subject: Re: Linux 4.15-rc2: Regression in resume from ACPI S3 Date: Thu, 14 Dec 2017 16:54:09 +0100 Message-ID: <11146834.AWaDHrVcmB@aspire.rjw.lan> In-Reply-To: References: <168050887.sZlTFXWCmO@aspire.rjw.lan> <5115041.vUGA3IjvdM@aspire.rjw.lan> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1325 Lines: 35 On Thursday, December 14, 2017 4:52:22 PM CET Thomas Gleixner wrote: > On Thu, 14 Dec 2017, Rafael J. Wysocki wrote: > > The problem here is that pci_pm_thaw_noirq() calls pci_restore_state() which > > in fact requires the device to be in D0, so the caller should put it into > > D0 instead of trying to "update" its power state. > > > > [Note that the PCI layer doesn't put devices into low-power states during the > > hibernation's "freeze" transition, but drivers can legitimately do that in > > their "freeze" callbacks which was overlooked in that code and that's what > > i915 does.] > > > > So IMO what we need is the change below. I'm going to test it shortly, > > but please give it a go too. > > So now this looks more reasonable: > > irq_migrate_all_off_this_cpu: Mask 125 pci_msi_mask_irq+0x0/0x10 > __pci_write_msi_msg: 0000:00:02.0 00000000fee0100c 0000412a > __pci_write_msi_msg: Not written > ... > device_pm_callback_start: i915 0000:00:02.0, parent: pci0000:00, noirq bus [thaw] > pci_pm_thaw_noirq <-dpm_run_callback > __pci_write_msi_msg: 0000:00:02.0 00000000fee0100c 0000412a > device_pm_callback_end: i915 0000:00:02.0, err=0 > ... > resume_irqs: Resume 125 > ... > irq_handler_entry: irq=125 name=i915 Cool. Let me respin it with a changelog etc then. Thanks, Rafael