From: Maarten Lankhorst <dev@lankhorst.se>
To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org, Maarten Lankhorst <dev@lankhorst.se>
Subject: [PATCH v8 00/27] drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe.
Date: Mon, 15 Jun 2026 22:18:18 +0200 [thread overview]
Message-ID: <20260615201846.307297-1-dev@lankhorst.se> (raw)
New version, rebased with updates to pipeconf patch, and dropping upstreamed patch.
Still waiting for feedback on the vblank approach, and check to see if there are some
bugs left.
Hoping this passes BAT on i915, and still mostly the full run on xe.
For Xe, we also prohibit the use of DSM when CONFIG_PREEMPT_RT is enabled,
and avoid the use of DSM if we cannot take over the framebuffer from the
firmware.
Ideally we copy the framebuffer after intel_fbdev_init_bios(),
when we decide to preserve the framebuffer and the hardware is
completely initialized.
At that point we can use the migration engine to copy the contents over,
this can potentially be used for preserving the initial framebuffer
in the other cases where we cannot not use the initial FB too.
Maarten Lankhorst (21):
drm/vblank_work: Add methods to schedule vblank_work in 2 stages
drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event
drm/intel/display: Make intel_crtc_arm_vblank_event static
drm/intel/display: Convert vblank event handling to 2-stage arming
drm/i915/display: Move vblank put until after critical section
drm/i915/display: Remove locking from intel_vblank_evade critical
section
drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range
too
drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
drm/i915/display: Do not take uncore lock in i915_get_vblank_counter
drm/i915/display: Make icl_dsi_frame_update use _fw too
drm/i915/display: Use intel_de_read/write_fw in colorops
drm/i915/display: Use intel_de_write_fw in intel_pipe_fastset
drm/i915/display: Make set_pipeconf use the fw variants
drm/i915/gt: Fix selftests on PREEMPT_RT
drm/i915/gt: Set stop_timeout() correctly on PREEMPT-RT
drm/i915/display: Remove uncore lock from vlv_atomic_update_fifo
drm/i915: Use sleeping selftests for igt_atomic on PREEMPT_RT
PREEMPT_RT injection
FOR-CI: bump MAX_STACK_TRACE_ENTRIES
drm/xe/display: Always use system memory on PREEMPT_RT for DPT.
drm/xe/display: Prefer not to allocate a framebuffers in stolen memory
Mike Galbraith (1):
drm/i915: Use preempt_disable/enable_rt() where recommended
Sebastian Andrzej Siewior (5):
drm/i915/gt: Use spin_lock_irq() instead of local_irq_disable() +
spin_lock()
drm/i915: Drop the irqs_disabled() check
drm/i915/guc: Consider also RCU depth in busy loop.
Revert "drm/i915: Depend on !PREEMPT_RT."
drm/i915/gt: Add a spinlock to prevent starvation of irq_work.
drivers/gpu/drm/drm_vblank.c | 61 +++++++++-
drivers/gpu/drm/drm_vblank_work.c | 106 ++++++++++++----
drivers/gpu/drm/i915/Kconfig | 1 -
drivers/gpu/drm/i915/Kconfig.debug | 15 ---
drivers/gpu/drm/i915/display/i9xx_wm.c | 4 -
drivers/gpu/drm/i915/display/icl_dsi.c | 4 +-
drivers/gpu/drm/i915/display/intel_color.c | 6 +-
drivers/gpu/drm/i915/display/intel_crtc.c | 86 ++++++-------
drivers/gpu/drm/i915/display/intel_crtc.h | 1 -
drivers/gpu/drm/i915/display/intel_cursor.c | 8 +-
drivers/gpu/drm/i915/display/intel_de.h | 8 ++
drivers/gpu/drm/i915/display/intel_display.c | 52 ++++----
drivers/gpu/drm/i915/display/intel_vblank.c | 115 ++++++++++--------
drivers/gpu/drm/i915/display/intel_vblank.h | 1 +
drivers/gpu/drm/i915/display/intel_vrr.c | 18 +--
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 8 +-
.../gpu/drm/i915/gt/intel_breadcrumbs_types.h | 1 +
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 2 +-
.../drm/i915/gt/intel_execlists_submission.c | 17 +--
drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 8 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 2 +-
drivers/gpu/drm/i915/i915_request.c | 2 -
drivers/gpu/drm/i915/intel_uncore.h | 26 ++--
drivers/gpu/drm/i915/selftests/igt_atomic.c | 7 ++
drivers/gpu/drm/xe/Kconfig.debug | 5 +
.../drm/xe/compat-i915-headers/intel_uncore.h | 7 ++
drivers/gpu/drm/xe/display/xe_display_bo.c | 35 ++----
drivers/gpu/drm/xe/display/xe_fb_pin.c | 8 --
include/drm/drm_vblank.h | 14 ++-
include/drm/drm_vblank_work.h | 12 ++
kernel/Kconfig.preempt | 4 +-
lib/Kconfig.debug | 5 +-
32 files changed, 400 insertions(+), 249 deletions(-)
--
2.53.0
next reply other threads:[~2026-06-15 20:18 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-15 20:18 Maarten Lankhorst [this message]
2026-06-15 20:18 ` [PATCH v8 01/27] drm/vblank_work: Add methods to schedule vblank_work in 2 stages Maarten Lankhorst
2026-06-15 20:30 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 02/27] drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event Maarten Lankhorst
2026-06-15 20:31 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 03/27] drm/intel/display: Make intel_crtc_arm_vblank_event static Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 04/27] drm/intel/display: Convert vblank event handling to 2-stage arming Maarten Lankhorst
2026-06-15 20:35 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 05/27] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
2026-06-15 20:25 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 06/27] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
2026-06-15 20:39 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 07/27] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
2026-06-15 20:29 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 08/27] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
2026-06-15 20:32 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 09/27] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
2026-06-15 20:39 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 10/27] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter Maarten Lankhorst
2026-06-15 20:35 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 11/27] drm/i915/display: Make icl_dsi_frame_update use _fw too Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 12/27] drm/i915/display: Use intel_de_read/write_fw in colorops Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 13/27] drm/i915/display: Use intel_de_write_fw in intel_pipe_fastset Maarten Lankhorst
2026-06-15 20:46 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 14/27] drm/i915/display: Make set_pipeconf use the fw variants Maarten Lankhorst
2026-06-15 20:44 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 15/27] drm/i915/gt: Use spin_lock_irq() instead of local_irq_disable() + spin_lock() Maarten Lankhorst
2026-06-15 20:39 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 16/27] drm/i915: Drop the irqs_disabled() check Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 17/27] drm/i915/guc: Consider also RCU depth in busy loop Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 18/27] drm/i915/gt: Fix selftests on PREEMPT_RT Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 19/27] drm/i915/gt: Set stop_timeout() correctly on PREEMPT-RT Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 20/27] drm/i915/display: Remove uncore lock from vlv_atomic_update_fifo Maarten Lankhorst
2026-06-15 20:36 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 21/27] drm/i915: Use sleeping selftests for igt_atomic on PREEMPT_RT Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 22/27] Revert "drm/i915: Depend on !PREEMPT_RT." Maarten Lankhorst
2026-06-15 20:18 ` [PATCH v8 23/27] PREEMPT_RT injection Maarten Lankhorst
2026-06-15 20:39 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 24/27] FOR-CI: bump MAX_STACK_TRACE_ENTRIES Maarten Lankhorst
2026-06-15 20:35 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 25/27] drm/i915/gt: Add a spinlock to prevent starvation of irq_work Maarten Lankhorst
2026-06-15 20:38 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 26/27] drm/xe/display: Always use system memory on PREEMPT_RT for DPT Maarten Lankhorst
2026-06-15 20:39 ` sashiko-bot
2026-06-15 20:18 ` [PATCH v8 27/27] drm/xe/display: Prefer not to allocate a framebuffers in stolen memory Maarten Lankhorst
2026-06-15 20:41 ` sashiko-bot
2026-06-15 20:33 ` ✗ CI.checkpatch: warning for drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe. (rev16) Patchwork
2026-06-15 20:34 ` ✓ CI.KUnit: success " Patchwork
2026-06-15 20:50 ` ✗ CI.checksparse: warning " Patchwork
2026-06-15 21:27 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-06-15 21:48 ` ✗ i915.CI.BAT: " Patchwork
2026-06-15 23:22 ` ✗ Xe.CI.FULL: " 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=20260615201846.307297-1-dev@lankhorst.se \
--to=dev@lankhorst.se \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@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.