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-bige...@linutronix.de/ - Added patch 8. v2…v3 https://lore.kernel.org/all/20240613102818.4056866-1-bige...@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