Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Rafael J. Wysocki
On Wed, Jul 18, 2018 at 10:11 PM, Lyude Paul wrote: > On Wed, 2018-07-18 at 10:36 +0200, Lukas Wunner wrote: >> On Wed, Jul 18, 2018 at 10:25:05AM +0200, Lukas Wunner wrote: >> > The GPU contains an i2c subdevice for each connector with DDC lines. >> > I believe those are modelled as children of t

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Lyude Paul
On Wed, 2018-07-18 at 10:36 +0200, Lukas Wunner wrote: > On Wed, Jul 18, 2018 at 10:25:05AM +0200, Lukas Wunner wrote: > > The GPU contains an i2c subdevice for each connector with DDC lines. > > I believe those are modelled as children of the GPU's PCI device as > > they're accessed via mmio of th

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Lukas Wunner
On Wed, Jul 18, 2018 at 10:25:05AM +0200, Lukas Wunner wrote: > The GPU contains an i2c subdevice for each connector with DDC lines. > I believe those are modelled as children of the GPU's PCI device as > they're accessed via mmio of the PCI device. > > The problem here is that when the GPU's PCI

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Rafael J. Wysocki
On Wed, Jul 18, 2018 at 10:25 AM, Lukas Wunner wrote: > On Wed, Jul 18, 2018 at 09:38:41AM +0200, Rafael J. Wysocki wrote: >> On Tue, Jul 17, 2018 at 8:20 PM, Lukas Wunner wrote: >> > Okay, the PCI device is suspending and the nvkm_i2c_aux_acquire() >> > wants it in resumed state, so is waiting f

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Lukas Wunner
On Wed, Jul 18, 2018 at 09:38:41AM +0200, Rafael J. Wysocki wrote: > On Tue, Jul 17, 2018 at 8:20 PM, Lukas Wunner wrote: > > Okay, the PCI device is suspending and the nvkm_i2c_aux_acquire() > > wants it in resumed state, so is waiting forever for the device to > > runtime suspend in order to res

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Lukas Wunner
On Tue, Jul 17, 2018 at 02:34:47PM -0400, Lyude Paul wrote: > On Tue, 2018-07-17 at 20:32 +0200, Lukas Wunner wrote: > > On Tue, Jul 17, 2018 at 02:24:31PM -0400, Lyude Paul wrote: > > > On Tue, 2018-07-17 at 20:20 +0200, Lukas Wunner wrote: > > > > Okay, the PCI device is suspending and the nvkm_i

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Rafael J. Wysocki
On Tue, Jul 17, 2018 at 8:34 PM, Lyude Paul wrote: > On Tue, 2018-07-17 at 20:32 +0200, Lukas Wunner wrote: >> On Tue, Jul 17, 2018 at 02:24:31PM -0400, Lyude Paul wrote: >> > On Tue, 2018-07-17 at 20:20 +0200, Lukas Wunner wrote: >> > > Okay, the PCI device is suspending and the nvkm_i2c_aux_acqu

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-18 Thread Rafael J. Wysocki
On Tue, Jul 17, 2018 at 8:20 PM, Lukas Wunner wrote: > On Tue, Jul 17, 2018 at 12:53:11PM -0400, Lyude Paul wrote: >> On Tue, 2018-07-17 at 09:16 +0200, Lukas Wunner wrote: >> > On Mon, Jul 16, 2018 at 07:59:25PM -0400, Lyude Paul wrote: >> > > In order to fix all of the spots that need to have ru

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-17 Thread Lyude Paul
On Tue, 2018-07-17 at 20:32 +0200, Lukas Wunner wrote: > On Tue, Jul 17, 2018 at 02:24:31PM -0400, Lyude Paul wrote: > > On Tue, 2018-07-17 at 20:20 +0200, Lukas Wunner wrote: > > > Okay, the PCI device is suspending and the nvkm_i2c_aux_acquire() > > > wants it in resumed state, so is waiting fore

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-17 Thread Lukas Wunner
On Tue, Jul 17, 2018 at 02:24:31PM -0400, Lyude Paul wrote: > On Tue, 2018-07-17 at 20:20 +0200, Lukas Wunner wrote: > > Okay, the PCI device is suspending and the nvkm_i2c_aux_acquire() > > wants it in resumed state, so is waiting forever for the device to > > runtime suspend in order to resume it

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-17 Thread Lyude Paul
On Tue, 2018-07-17 at 20:20 +0200, Lukas Wunner wrote: > On Tue, Jul 17, 2018 at 12:53:11PM -0400, Lyude Paul wrote: > > On Tue, 2018-07-17 at 09:16 +0200, Lukas Wunner wrote: > > > On Mon, Jul 16, 2018 at 07:59:25PM -0400, Lyude Paul wrote: > > > > In order to fix all of the spots that need to hav

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-17 Thread Lukas Wunner
On Tue, Jul 17, 2018 at 12:53:11PM -0400, Lyude Paul wrote: > On Tue, 2018-07-17 at 09:16 +0200, Lukas Wunner wrote: > > On Mon, Jul 16, 2018 at 07:59:25PM -0400, Lyude Paul wrote: > > > In order to fix all of the spots that need to have runtime PM get/puts() > > > added, we need to ensure that it'

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-17 Thread Lyude Paul
On Tue, 2018-07-17 at 09:16 +0200, Lukas Wunner wrote: > [cc += linux-pm] > > Hi Lyude, > > First of all, thanks a lot for looking into this. > > On Mon, Jul 16, 2018 at 07:59:25PM -0400, Lyude Paul wrote: > > In order to fix all of the spots that need to have runtime PM get/puts() > > added, w

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-17 Thread Rafael J. Wysocki
On Tue, Jul 17, 2018 at 9:16 AM, Lukas Wunner wrote: > [cc += linux-pm] > > Hi Lyude, > > First of all, thanks a lot for looking into this. > > On Mon, Jul 16, 2018 at 07:59:25PM -0400, Lyude Paul wrote: >> In order to fix all of the spots that need to have runtime PM get/puts() >> added, we need

Re: [Nouveau] [PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-17 Thread Lukas Wunner
[cc += linux-pm] Hi Lyude, First of all, thanks a lot for looking into this. On Mon, Jul 16, 2018 at 07:59:25PM -0400, Lyude Paul wrote: > In order to fix all of the spots that need to have runtime PM get/puts() > added, we need to ensure that it's possible for us to call > pm_runtime_get/put()

[PATCH 1/5] drm/nouveau: Prevent RPM callback recursion in suspend/resume paths

2018-07-16 Thread Lyude Paul
In order to fix all of the spots that need to have runtime PM get/puts() added, we need to ensure that it's possible for us to call pm_runtime_get/put() in any context, regardless of how deep, since almost all of the spots that are currently missing refs can potentially get called in the runtime su