From: Imre Deak <imre.deak@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: Don't fail rpm suspend with -EGAIN
Date: Tue, 17 Nov 2015 23:35:33 +0200 [thread overview]
Message-ID: <1447796133.14373.1.camel@intel.com> (raw)
In-Reply-To: <20151117213023.GA4437@intel.com>
On Tue, 2015-11-17 at 23:30 +0200, Ville Syrjälä wrote:
> On Tue, Nov 17, 2015 at 10:18:41PM +0100, Daniel Vetter wrote:
> > If we can't acquire dev->struct_mutex we need to fail runtime suspend,
> > at least with the current design. Currently we do that using -EAGAIN,
> > but that upsets the pm core, resulting in the occasional fail testcase
> > in our CI with the following dmesg dirt:
> >
> > pci_pm_runtime_suspend(): intel_runtime_suspend+0x0/0x240 [i915] returns -11
> >
> > Chris has some ideas to improve this, but for now just shut up the
> > error.
> >
> > Cc: Paulo Zanoni <przanoni@gmail.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> > drivers/gpu/drm/i915/i915_drv.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index 5a70aca71d6b..ab8ffbc48e2d 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -1497,8 +1497,7 @@ static int intel_runtime_suspend(struct device *device)
> > * We could deadlock here in case another thread holding struct_mutex
> > * calls RPM suspend concurrently, since the RPM suspend will wait
> > * first for this RPM suspend to finish. In this case the concurrent
> > - * RPM resume will be followed by its RPM suspend counterpart. Still
> > - * for consistency return -EAGAIN, which will reschedule this suspend.
> > + * RPM resume will be followed by its RPM suspend counterpart.
> > */
> > if (!mutex_trylock(&dev->struct_mutex)) {
> > DRM_DEBUG_KMS("device lock contention, deffering suspend\n");
> > @@ -1508,7 +1507,8 @@ static int intel_runtime_suspend(struct device *device)
> > */
> > pm_runtime_mark_last_busy(device);
> >
> > - return -EAGAIN;
> > + /* Fail silently to avoid upsetting the pm core. */
> > + return 0;
>
> So the core will assume we're now suspended and then resume gets called
> while we're still powered on. Sounds like a bad plan to me. I'm
> especially worried about VLV here with its GT no wake dance and manual
> save/restore.
Also the PCI core will put the device into D3 if we report success.
>
> > }
> > /*
> > * We are safe here against re-faults, since the fault handler takes
> > --
> > 2.5.1
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-11-17 21:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-17 21:18 [PATCH] drm/i915: Don't fail rpm suspend with -EGAIN Daniel Vetter
2015-11-17 21:30 ` Ville Syrjälä
2015-11-17 21:35 ` Imre Deak [this message]
2015-11-18 10:36 ` Ville Syrjälä
Reply instructions:
You may reply publicly 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=1447796133.14373.1.camel@intel.com \
--to=imre.deak@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=daniel.vetter@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ville.syrjala@linux.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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.