From: Robert Beckett <robert.beckett@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/i915: fix possible RPM ref leaking during RPS disabling
Date: Thu, 22 May 2014 13:56:17 +0100 [thread overview]
Message-ID: <537DF3F1.7080908@intel.com> (raw)
In-Reply-To: <20140513135440.GI3908@phenom.ffwll.local>
On 13/05/2014 14:54, Daniel Vetter wrote:
> On Tue, May 13, 2014 at 04:46:10PM +0300, Imre Deak wrote:
>> On Mon, 2014-05-12 at 19:51 +0200, Daniel Vetter wrote:
>>> On Mon, May 12, 2014 at 06:35:04PM +0300, Imre Deak wrote:
>>>> In
>>>>
>>>> commit c6df39b5ea6342323a42edfbeeca0a28c643d7ae
>>>> Author: Imre Deak <imre.deak@intel.com>
>>>> Date: Mon Apr 14 20:24:29 2014 +0300
>>>>
>>>> drm/i915: get a runtime PM ref for the deferred GT powersave enabling
>>>>
>>>> I added an RPM get-ref when enabling RPS from a deferred work, but forgot
>>>> to add the corresponding put-ref when canceling the work. This may leave
>>>> RPM disabled.
>>>>
>>>> Signed-off-by: Imre Deak <imre.deak@intel.com>
>>>
>>> Could we intentionally hit this by e.g. racing a suspend/resume against
>>> runtime pm? E.g.
>>> 1. disable all outputs, make sure we've entered runtime pm
>>> 2. set runtime autosuspend delay to 0
>>> 3. suspend/resume
>>> 4. autosuspend (hopefully, my understanding is a bit unclear)
>>>
>>> ->Boom
>>>
>>> Would look nice as an igt subtest if it works ;-)
>>
>> Yep, works consistently as expected both before and after the fix. I
>> pushed the new subtest, please add here:
>> Testcase: igt/pm_pc8/system-suspend
>
> Now I'm confused: I expected this to blow up without your fix here, and
> not work with or without it?! Please unconfuse ...
> -Daniel
>
Im not sure what you are expecting to go boom.
It is pretty difficult to get a race between suspend/resume and runtime
pm. During system suspend, the pm core grabs a runtime ref without
resume callbacks, and releases it on the resume. (see
https://www.kernel.org/doc/Documentation/power/runtime_pm.txt part 6).
Also, as i915_drm_freeze does a runtime pm get, at step 3, it will cause
a runtime resume before doing the system suspend. On the system resume,
it will do a runtime pm put, which will cause a runtime suspend due to
autosuspend delay being 0, and so step 4, autosuspend will occur. This
should all work fine (assuming the patch is applied to handle any
refcounting between back to back resume->suspend which cancels the
enable before it is executed).
It all looks fine to me.
Reviewed-by: Robert Beckett <robert.beckett@intel.com>
next prev parent reply other threads:[~2014-05-22 12:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-12 15:35 [PATCH 1/2] drm/i915: fix possible RPM ref leaking during RPS disabling Imre Deak
2014-05-12 15:35 ` [PATCH 2/2] drm/i915: disable GT power saving early during system suspend Imre Deak
2014-05-12 17:51 ` [PATCH 1/2] drm/i915: fix possible RPM ref leaking during RPS disabling Daniel Vetter
2014-05-13 13:46 ` Imre Deak
2014-05-13 13:54 ` Daniel Vetter
2014-05-13 13:56 ` Imre Deak
2014-05-22 12:56 ` Robert Beckett [this message]
2014-05-22 19:46 ` Daniel Vetter
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=537DF3F1.7080908@intel.com \
--to=robert.beckett@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox