[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