From: sashiko-bot@kernel.org
To: "Nemesa Garg" <nemesa.garg@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status
Date: Tue, 18 Aug 2026 08:59:52 +0000 [thread overview]
Message-ID: <20260818085952.B697E1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260818084236.2168580-2-nemesa.garg@intel.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The newly added fast path logic for joined cursor planes is unreachable due to an unremoved fallback, and lacks secondary plane hardware update logic.
--
--- Patch [1]: [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status ---
commit 217b50906b0ee44f4341de677a7c7eeba08394c6
Author: Nemesa Garg <nemesa.garg@intel.com>
drm/i915/cursor: Check joiner cursor commit status
In joiner mode, secondary cursor commits may still be running
even when the primary cursor commit is done. Walking the secondary
pipes also requires holding the secondary planes modeset locks.
Add intel_cursor_lock_joined_planes() to acquire modeset locks
for all secondary cursor planes. Check all joined cursor commit
status before taking the fast path. If any commit is still pending,
fallback to slow path.
> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
> index 0673f16f6fd0d..bc1e58d5c4c5e 100644
> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
[ ... ]
> @@ -833,15 +877,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
> crtc_state->joiner_pipes)
> goto slow;
[Severity: Medium]
Since this existing check unconditionally sends joiner configurations to
the slow path, doesn't it make the newly added fast path logic below
unreachable for joiner pipes?
[ ... ]
> @@ -855,6 +890,21 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
> !old_plane_state->uapi.fb != !fb)
> goto slow;
>
> + ret = intel_cursor_lock_joined_planes(display, crtc_state, ctx);
> + if (ret == -EDEADLK)
> + return ret;
> + if (ret)
> + goto slow;
> +
> + /*
> + * Don't do an async update if there is an outstanding commit modifying
> + * any of the joined cursor planes. This prevents our async update's
> + * changes from getting overridden by a previous synchronous update's
> + * state.
> + */
> + if (!intel_cursor_joiner_commits_idle(display, crtc_state))
> + goto slow;
> +
[Severity: Medium]
If the earlier fallback were removed, would the hardware update logic at the
end of intel_legacy_cursor_update() also need to be updated?
Currently, it only updates the primary plane:
if (new_plane_state->uapi.visible) {
intel_plane_update_noarm(NULL, plane, crtc_state, new_plane_state);
intel_plane_update_arm(NULL, plane, crtc_state, new_plane_state);
} else {
intel_plane_disable_arm(NULL, plane, crtc_state);
}
It looks like the secondary joined planes won't receive hardware updates if
the fast path is actually taken.
> new_plane_state = to_intel_plane_state(intel_plane_duplicate_state(&plane->base));
> if (!new_plane_state)
> return -ENOMEM;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260818084236.2168580-1-nemesa.garg@intel.com?part=1
next prev parent reply other threads:[~2026-08-18 8:59 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-18 8:42 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg
2026-08-18 8:42 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg
2026-08-18 8:59 ` sashiko-bot [this message]
2026-08-18 8:42 ` [PATCH 2/6] drm/i915/cursor: Add helper to update cursor plane Nemesa Garg
2026-08-18 8:42 ` [PATCH 3/6] drm/i915/cursor: Handle secondary cursor state Nemesa Garg
2026-08-18 8:58 ` sashiko-bot
2026-08-18 8:42 ` [PATCH 4/6] drm/i915/cursor: Program secondary cursor planes Nemesa Garg
2026-08-18 8:42 ` [PATCH 5/6] drm/i915/cursor: Schedule cursor unpin per joined pipe Nemesa Garg
2026-08-18 8:42 ` [PATCH 6/6] drm/i915/cursor: Allow joiner cursor fast path update Nemesa Garg
2026-08-18 8:53 ` ✗ CI.checkpatch: warning for Enable joiner cursor fast updates (rev5) Patchwork
2026-08-18 8:55 ` ✓ CI.KUnit: success " Patchwork
2026-08-18 9:31 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-18 10:35 ` ✓ Xe.CI.FULL: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2026-07-06 11:56 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg
2026-07-06 11:56 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg
2026-07-29 15:28 ` Borah, Chaitanya Kumar
2026-06-08 6:26 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg
2026-06-08 6:26 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg
2026-07-01 16:25 ` Borah, Chaitanya Kumar
2026-07-06 8:40 ` Garg, Nemesa
2026-04-28 14:16 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg
2026-04-28 14:16 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg
2026-04-22 7:37 [PATCH 0/6] Enable joiner cursor fast updates Nemesa Garg
2026-04-22 7:37 ` [PATCH 1/6] drm/i915/cursor: Check joiner cursor commit status Nemesa Garg
2026-04-22 9:46 ` Ville Syrjälä
2026-04-27 6:14 ` Garg, Nemesa
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=20260818085952.B697E1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=nemesa.garg@intel.com \
--cc=sashiko-reviews@lists.linux.dev \
/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