From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailout1.hostsharing.net ([83.223.95.204]:56529 "EHLO mailout1.hostsharing.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S980587AbdDYGV3 (ORCPT ); Tue, 25 Apr 2017 02:21:29 -0400 Date: Tue, 25 Apr 2017 08:21:49 +0200 From: Lukas Wunner To: "Rafael J. Wysocki" Cc: Imre Deak , intel-gfx@lists.freedesktop.org, "Rafael J. Wysocki" , Bjorn Helgaas , linux-pci@vger.kernel.org Subject: Re: [PATCH v2 1/2] PCI / PM: Add needs_resume flag to avoid suspend complete optimization Message-ID: <20170425062149.GA9999@wunner.de> References: <1493044063-2095-1-git-send-email-imre.deak@intel.com> <20170424200230.GA9910@wunner.de> <20170424204242.GA9933@wunner.de> <1741762.duLppskeDL@aspire.rjw.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1741762.duLppskeDL@aspire.rjw.lan> Sender: linux-pci-owner@vger.kernel.org List-ID: On Mon, Apr 24, 2017 at 10:56:40PM +0200, Rafael J. Wysocki wrote: > On Monday, April 24, 2017 10:42:42 PM Lukas Wunner wrote: > > On Mon, Apr 24, 2017 at 10:02:30PM +0200, Lukas Wunner wrote: > > > On Mon, Apr 24, 2017 at 05:27:42PM +0300, Imre Deak wrote: > > > > Some drivers - like i915 - may not support the system suspend direct > > > > complete optimization due to differences in their runtime and system > > > > suspend sequence. Add a flag that when set resumes the device before > > > > calling the driver's system suspend handlers which effectively disables > > > > the optimization. > > > > > > FWIW, there are at least two alternative solutions to this problem which > > > do not require changes to the PCI core: > > > > > > (1) Add a ->prepare hook to i915_pm_ops which calls pm_runtime_get_sync() > > > and a ->complete hook which calls pm_runtime_put(). > > > > Thinking a bit more about this, it's even simpler: The PM core acquires > > a runtime PM ref in device_prepare() and releases it in device_complete(), > > so it's sufficient to just call pm_runtime_resume() in a ->prepare hook > > that's newly added to i915. No ->complete hook necessary. Tentative > > patch below, based on drm-intel-fixes, would replace both of your patches. > > Calling it in ->prepare() means that everybody is now waiting for you to > resume. > > Not quite optimal IMO. Okay, understood. However in the absence of a device_link from the HDA device (consumer) to the GPU (supplier), there's no guarantee that the GPU is resumed when the HDA device needs it due to the asynchronous invocation of the ->suspend hooks. This is assuming that the HDA device already needs the GPU during ->suspend phase. Thanks, Lukas From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukas Wunner Subject: Re: [PATCH v2 1/2] PCI / PM: Add needs_resume flag to avoid suspend complete optimization Date: Tue, 25 Apr 2017 08:21:49 +0200 Message-ID: <20170425062149.GA9999@wunner.de> References: <1493044063-2095-1-git-send-email-imre.deak@intel.com> <20170424200230.GA9910@wunner.de> <20170424204242.GA9933@wunner.de> <1741762.duLppskeDL@aspire.rjw.lan> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.hostsharing.net (mailout1.hostsharing.net [83.223.95.204]) by gabe.freedesktop.org (Postfix) with ESMTPS id DCFCF89B22 for ; Tue, 25 Apr 2017 06:21:23 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1741762.duLppskeDL@aspire.rjw.lan> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Rafael J. Wysocki" Cc: Bjorn Helgaas , linux-pci@vger.kernel.org, "Rafael J. Wysocki" , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBBcHIgMjQsIDIwMTcgYXQgMTA6NTY6NDBQTSArMDIwMCwgUmFmYWVsIEouIFd5c29j a2kgd3JvdGU6Cj4gT24gTW9uZGF5LCBBcHJpbCAyNCwgMjAxNyAxMDo0Mjo0MiBQTSBMdWthcyBX dW5uZXIgd3JvdGU6Cj4gPiBPbiBNb24sIEFwciAyNCwgMjAxNyBhdCAxMDowMjozMFBNICswMjAw LCBMdWthcyBXdW5uZXIgd3JvdGU6Cj4gPiA+IE9uIE1vbiwgQXByIDI0LCAyMDE3IGF0IDA1OjI3 OjQyUE0gKzAzMDAsIEltcmUgRGVhayB3cm90ZToKPiA+ID4gPiBTb21lIGRyaXZlcnMgLSBsaWtl IGk5MTUgLSBtYXkgbm90IHN1cHBvcnQgdGhlIHN5c3RlbSBzdXNwZW5kIGRpcmVjdAo+ID4gPiA+ IGNvbXBsZXRlIG9wdGltaXphdGlvbiBkdWUgdG8gZGlmZmVyZW5jZXMgaW4gdGhlaXIgcnVudGlt ZSBhbmQgc3lzdGVtCj4gPiA+ID4gc3VzcGVuZCBzZXF1ZW5jZS4gQWRkIGEgZmxhZyB0aGF0IHdo ZW4gc2V0IHJlc3VtZXMgdGhlIGRldmljZSBiZWZvcmUKPiA+ID4gPiBjYWxsaW5nIHRoZSBkcml2 ZXIncyBzeXN0ZW0gc3VzcGVuZCBoYW5kbGVycyB3aGljaCBlZmZlY3RpdmVseSBkaXNhYmxlcwo+ ID4gPiA+IHRoZSBvcHRpbWl6YXRpb24uCj4gPiA+IAo+ID4gPiBGV0lXLCB0aGVyZSBhcmUgYXQg bGVhc3QgdHdvIGFsdGVybmF0aXZlIHNvbHV0aW9ucyB0byB0aGlzIHByb2JsZW0gd2hpY2gKPiA+ ID4gZG8gbm90IHJlcXVpcmUgY2hhbmdlcyB0byB0aGUgUENJIGNvcmU6Cj4gPiA+IAo+ID4gPiAo MSkgQWRkIGEgLT5wcmVwYXJlIGhvb2sgdG8gaTkxNV9wbV9vcHMgd2hpY2ggY2FsbHMgcG1fcnVu dGltZV9nZXRfc3luYygpCj4gPiA+ICAgICBhbmQgYSAtPmNvbXBsZXRlIGhvb2sgd2hpY2ggY2Fs bHMgcG1fcnVudGltZV9wdXQoKS4KPiA+IAo+ID4gVGhpbmtpbmcgYSBiaXQgbW9yZSBhYm91dCB0 aGlzLCBpdCdzIGV2ZW4gc2ltcGxlcjogIFRoZSBQTSBjb3JlIGFjcXVpcmVzCj4gPiBhIHJ1bnRp bWUgUE0gcmVmIGluIGRldmljZV9wcmVwYXJlKCkgYW5kIHJlbGVhc2VzIGl0IGluIGRldmljZV9j b21wbGV0ZSgpLAo+ID4gc28gaXQncyBzdWZmaWNpZW50IHRvIGp1c3QgY2FsbCBwbV9ydW50aW1l X3Jlc3VtZSgpIGluIGEgLT5wcmVwYXJlIGhvb2sKPiA+IHRoYXQncyBuZXdseSBhZGRlZCB0byBp OTE1LiAgTm8gLT5jb21wbGV0ZSBob29rIG5lY2Vzc2FyeS4gIFRlbnRhdGl2ZQo+ID4gcGF0Y2gg YmVsb3csIGJhc2VkIG9uIGRybS1pbnRlbC1maXhlcywgd291bGQgcmVwbGFjZSBib3RoIG9mIHlv dXIgcGF0Y2hlcy4KPiAKPiBDYWxsaW5nIGl0IGluIC0+cHJlcGFyZSgpIG1lYW5zIHRoYXQgZXZl cnlib2R5IGlzIG5vdyB3YWl0aW5nIGZvciB5b3UgdG8KPiByZXN1bWUuCj4gCj4gTm90IHF1aXRl IG9wdGltYWwgSU1PLgoKT2theSwgdW5kZXJzdG9vZC4KCkhvd2V2ZXIgaW4gdGhlIGFic2VuY2Ug b2YgYSBkZXZpY2VfbGluayBmcm9tIHRoZSBIREEgZGV2aWNlIChjb25zdW1lcikKdG8gdGhlIEdQ VSAoc3VwcGxpZXIpLCB0aGVyZSdzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBHUFUgaXMgcmVzdW1l ZAp3aGVuIHRoZSBIREEgZGV2aWNlIG5lZWRzIGl0IGR1ZSB0byB0aGUgYXN5bmNocm9ub3VzIGlu dm9jYXRpb24gb2YKdGhlIC0+c3VzcGVuZCBob29rcy4gIFRoaXMgaXMgYXNzdW1pbmcgdGhhdCB0 aGUgSERBIGRldmljZSBhbHJlYWR5Cm5lZWRzIHRoZSBHUFUgZHVyaW5nIC0+c3VzcGVuZCBwaGFz ZS4KClRoYW5rcywKCkx1a2FzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=