CPU access to stolen memory ranges can introduce latency spikes that compromise real-time (RT) guarantees on PREEMPT_RT kernels.
On PREEMPT_RT configurations, bypass retrieving the initial plane's framebuffer from stolen memory. This forces the driver to fall back to standard allocations, preventing RT latency degradation at the expense of seamless boot display takeover. Signed-off-by: Junxiao Chang <[email protected]> --- drivers/gpu/drm/xe/display/xe_initial_plane.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/xe/display/xe_initial_plane.c b/drivers/gpu/drm/xe/display/xe_initial_plane.c index 0f86b73036d03..fd0e2962412dd 100644 --- a/drivers/gpu/drm/xe/display/xe_initial_plane.c +++ b/drivers/gpu/drm/xe/display/xe_initial_plane.c @@ -87,6 +87,12 @@ initial_plane_bo(struct xe_device *xe, struct ttm_resource_manager *stolen; u64 pte; + if (IS_ENABLED(CONFIG_PREEMPT_RT)) { + drm_dbg_kms(&xe->drm, + "Skipping FB allocation from stolen mem due to PREEMPT_RT\n"); + return NULL; + } + stolen = ttm_manager_type(&xe->ttm, XE_PL_STOLEN); if (!stolen) { drm_dbg_kms(&xe->drm, "No stolen for initial FB\n"); -- 2.43.0
