From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 08/10] drm/i915/rps: postpone i915 fence check to boost
Date: Fri, 14 Nov 2025 16:15:59 +0200 [thread overview]
Message-ID: <aRc5n-WdlZuZNfMP@intel.com> (raw)
In-Reply-To: <cea4ca198ccb5272df49c93bbfb73394912e1219.1763115899.git.jani.nikula@intel.com>
On Fri, Nov 14, 2025 at 12:26:47PM +0200, Jani Nikula wrote:
> Make the RPS boost code independent of i915 request code by moving the
> dma_fence_is_i915() check to the RPS boost call.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> ---
>
> I'm not actually sure what the non-i915 fences would be here, and what
> kind of overhead they would cause.
The fence could be from another GPU driver that did the rendering,
and then we can't convert the fence to i915 request.
At some point we should probably look into using the fence
.set_deadline() stuff instead of this "boost when late"
approach, but that's one of those things that probably needs
some amount of hand tuning, so real work required.
Anyways I think this should be fine, we just set up the vblank
miss thingy even for non-i915 fences now and then do nothing
if it triggers.
aReviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display_rps.c | 4 ----
> drivers/gpu/drm/i915/gt/intel_rps.c | 7 ++++++-
> 2 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_rps.c b/drivers/gpu/drm/i915/display/intel_display_rps.c
> index e70c4f0eab80..86e757423c0a 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_rps.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_rps.c
> @@ -9,7 +9,6 @@
> #include <drm/drm_vblank.h>
>
> #include "i915_reg.h"
> -#include "i915_request.h"
> #include "intel_display_core.h"
> #include "intel_display_irq.h"
> #include "intel_display_rps.h"
> @@ -49,9 +48,6 @@ void intel_display_rps_boost_after_vblank(struct drm_crtc *crtc,
> if (!intel_parent_rps_available(display))
> return;
>
> - if (!dma_fence_is_i915(fence))
> - return;
> -
> if (DISPLAY_VER(display) < 6)
> return;
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index 61d746bda462..05b21de6c24b 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -2917,7 +2917,12 @@ EXPORT_SYMBOL_GPL(i915_gpu_turbo_disable);
>
> static void boost(struct dma_fence *fence)
> {
> - struct i915_request *rq = to_request(fence);
> + struct i915_request *rq;
> +
> + if (!dma_fence_is_i915(fence))
> + return;
> +
> + rq = to_request(fence);
>
> /*
> * If we missed the vblank, but the request is already running it
> --
> 2.47.3
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2025-11-14 14:16 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-14 10:26 [PATCH 00/10] drm/i915: call irq and rps through the parent interface Jani Nikula
2025-11-14 10:26 ` [PATCH 01/10] drm/{i915, xe}/display: duplicate gen2 irq/error init/reset in display irq Jani Nikula
2025-11-14 10:26 ` [PATCH 02/10] drm/i915/display: convert the display irq interfaces to struct intel_display Jani Nikula
2025-11-14 10:26 ` [PATCH 03/10] drm/{i915, xe}/display: move irq calls to parent interface Jani Nikula
2025-11-14 13:57 ` [PATCH 03/10] drm/{i915,xe}/display: " Ville Syrjälä
2025-11-14 10:26 ` [PATCH 04/10] drm/i915: add .vgpu_active " Jani Nikula
2025-11-14 13:59 ` Ville Syrjälä
2025-11-14 10:26 ` [PATCH 05/10] drm/i915: add .fence_support_legacy " Jani Nikula
2025-11-14 14:03 ` Ville Syrjälä
2025-11-14 15:16 ` [PATCH v2] FIXME drm/i915: add .has_fenced_regions " Jani Nikula
2025-11-14 15:18 ` Jani Nikula
2025-11-14 16:18 ` Ville Syrjälä
2025-11-14 10:26 ` [PATCH 06/10] drm/i915/rps: store struct dma_fence in struct wait_rps_boost Jani Nikula
2025-11-14 14:03 ` Ville Syrjälä
2025-11-14 10:26 ` [PATCH 07/10] drm/i915/rps: call RPS functions via the parent interface Jani Nikula
2025-11-14 14:13 ` Ville Syrjälä
2025-11-14 15:31 ` [PATCH v2] " Jani Nikula
2025-11-14 16:22 ` Ville Syrjälä
2025-11-14 10:26 ` [PATCH 08/10] drm/i915/rps: postpone i915 fence check to boost Jani Nikula
2025-11-14 14:15 ` Ville Syrjälä [this message]
2025-11-14 14:21 ` Ville Syrjälä
2025-11-14 10:26 ` [PATCH 09/10] drm/i915: add .fence_priority_display to parent interface Jani Nikula
2025-11-14 14:19 ` Ville Syrjälä
2025-11-14 15:32 ` [PATCH v3] " Jani Nikula
2025-11-14 10:26 ` [PATCH 10/10] drm/xe/rps: build RPS as part of xe Jani Nikula
2025-11-14 14:20 ` Ville Syrjälä
2025-11-14 11:22 ` ✗ CI.checkpatch: warning for drm/i915: call irq and rps through the parent interface Patchwork
2025-11-14 11:24 ` ✓ CI.KUnit: success " Patchwork
2025-11-14 11:39 ` ✗ CI.checksparse: warning " Patchwork
2025-11-14 12:03 ` ✓ i915.CI.BAT: success " Patchwork
2025-11-14 12:33 ` ✓ Xe.CI.BAT: " Patchwork
2025-11-14 19:45 ` ✗ Xe.CI.Full: failure " Patchwork
2025-11-15 5:22 ` ✗ i915.CI.Full: failure for drm/i915: call irq and rps through the parent interface (rev4) 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=aRc5n-WdlZuZNfMP@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@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.