[PATCH v4 0/9] drm/i915: PREEMPT_RT related fixups.
Sebastian Andrzej Siewior
bigeasy at linutronix.de
Mon Jul 14 15:39:45 UTC 2025
The following patches are from the PREEMPT_RT queue. They are used by
people using the real-time preemption model and a i915 compatible GPU
card.
Patches 1+2 keep preemption and interrupts enabled within vblank
handling. I don't see another way of handling it given the constrains.
Patch #4 disables i915's tracepoints because they acquire sleeping locks
within the assign callback with is invoked with disabled preemption.
The remaining patches mostly deal with the API & syntax such as not
test for disabled interrupts but rather use lockdep (#6) or how to
identify atomic context which also causes no errors on PREEMPT_RT (#3,
#6, #7). Patch #5 uses proper spinlock API to disable interrupt instead
of using local_irq_disable() for it.
Some of the patches already received already Acked-by/ Reviewed-by.
Could we please apply some of the series and then discuss the
controversial ones which are not doable?
History:
v3…v4 https://lore.kernel.org/all/20240628130601.1772849-1-bigeasy@linutronix.de/
- Added patch 8.
v2…v3 https://lore.kernel.org/all/20240613102818.4056866-1-bigeasy@linutronix.de/
- Collected tags.
- Added comment to 3/8 explaining why RT is excluded from the test.
v1…v2:
- The tracing disable bits (4/8) have been reworked after Steven pointed out
that something isn't right.
- The irq_work() bits have been dropped because they are no longer
needed.
Mike Galbraith (2):
drm/i915: Use preempt_disable/enable_rt() where recommended
drm/i915: Don't disable interrupts on PREEMPT_RT during atomic updates
Sebastian Andrzej Siewior (7):
drm/i915: Don't check for atomic context on PREEMPT_RT
drm/i915: Disable tracing points on PREEMPT_RT
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.
drm/i915: Consider RCU read section as atomic.
Revert "drm/i915: Depend on !PREEMPT_RT."
drivers/gpu/drm/i915/Kconfig | 1 -
drivers/gpu/drm/i915/display/intel_crtc.c | 9 ++--
drivers/gpu/drm/i915/display/intel_cursor.c | 9 ++--
.../drm/i915/display/intel_display_trace.h | 4 ++
drivers/gpu/drm/i915/display/intel_vblank.c | 49 ++++++++++++++-----
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 2 +-
.../drm/i915/gt/intel_execlists_submission.c | 17 ++-----
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 2 +-
drivers/gpu/drm/i915/i915_request.c | 2 -
drivers/gpu/drm/i915/i915_trace.h | 4 ++
drivers/gpu/drm/i915/i915_utils.h | 9 +++-
drivers/gpu/drm/i915/intel_uncore_trace.h | 4 ++
12 files changed, 75 insertions(+), 37 deletions(-)
Sebastian
More information about the Intel-xe
mailing list