From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Dhinakaran Pandiyan <dhinakaran.pandiyan@gmail.com>
Cc: intel-gfx@lists.freedesktop.org,
Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Subject: Re: [PATCH 1/2] drm/i915/psr: Fix race in intel_psr_work()
Date: Mon, 25 Jun 2018 17:10:46 -0700 [thread overview]
Message-ID: <20180626001046.GG3008@intel.com> (raw)
In-Reply-To: <20180625054741.3919-1-dhinakaran.pandiyan@intel.com>
On Sun, Jun 24, 2018 at 10:47:40PM -0700, Dhinakaran Pandiyan wrote:
> Commit 5422b37c907e ("drm/i915/psr: Kill delays when activating psr
> back.") switched from delayed work to the plain variant and while doing so
> removed the check for work_busy() before scheduling a PSR activation.
> This appears to cause consecutive executions of psr_activate() in this
> scenario - after a worker picks up the PSR work item for execution and
> before the work function can acquire the PSR mutex, a psr_flush() can
> get hold of the mutex and schedule another PSR work. Without a psr_exit()
> between the two psr_activate() calls, warning messages get printed.
> Further, since we drop the mutex in the midst of psr_work() to wait for
> PSR to idle, another work item can also get scheduled. Fix this by
> returning if PSR was already active.
:( my bad again, sorry...
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> Fixes: 5422b37c907e ("drm/i915/psr: Kill delays when activating psr back.")
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106948
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/intel_psr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
> index aea81ace854b..7aa324f0d1f7 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -811,7 +811,7 @@ static void intel_psr_work(struct work_struct *work)
> * recheck. Since psr_flush first clears this and then reschedules we
> * won't ever miss a flush when bailing out here.
> */
> - if (dev_priv->psr.busy_frontbuffer_bits)
> + if (dev_priv->psr.busy_frontbuffer_bits || dev_priv->psr.active)
> goto unlock;
>
> intel_psr_activate(dev_priv->psr.enabled);
> --
> 2.14.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2018-06-26 0:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-25 5:47 [PATCH 1/2] drm/i915/psr: Fix race in intel_psr_work() Dhinakaran Pandiyan
2018-06-25 5:47 ` [PATCH 2/2] drm/i915/psr: Warn for erroneous enabling of both PSR1 and PSR2 Dhinakaran Pandiyan
2018-06-26 0:09 ` Rodrigo Vivi
2018-06-26 6:44 ` Dhinakaran Pandiyan
2018-06-26 9:05 ` [PATCH v2 " Dhinakaran Pandiyan
2018-06-26 15:50 ` Rodrigo Vivi
2018-06-26 20:02 ` Dhinakaran Pandiyan
2018-06-25 6:21 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/psr: Fix race in intel_psr_work() Patchwork
2018-06-25 7:46 ` ✓ Fi.CI.IGT: " Patchwork
2018-06-26 0:10 ` Rodrigo Vivi [this message]
2018-06-26 9:42 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/psr: Fix race in intel_psr_work() (rev2) Patchwork
2018-06-26 11:26 ` ✓ Fi.CI.IGT: " Patchwork
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=20180626001046.GG3008@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=dhinakaran.pandiyan@gmail.com \
--cc=dhinakaran.pandiyan@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 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.