Patch "drm/msm/a5xx: disable preemption in submits by default" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/msm/a5xx: disable preemption in submits by default

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-msm-a5xx-disable-preemption-in-submits-by-defaul.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b11a33f2c93eb97544b0b9f4871cb13f2fe8f3e9
Author: Vladimir Lypak <vladimir.lypak@xxxxxxxxx>
Date:   Sun Sep 1 13:54:00 2024 +0000

    drm/msm/a5xx: disable preemption in submits by default
    
    [ Upstream commit db9dec2db76146d65e1cfbb6afb2e2bd5dab67f8 ]
    
    Fine grain preemption (switching from/to points within submits)
    requires extra handling in command stream of those submits, especially
    when rendering with tiling (using GMEM). However this handling is
    missing at this point in mesa (and always was). For this reason we get
    random GPU faults and hangs if more than one priority level is used
    because local preemption is enabled prior to executing command stream
    from submit.
    With that said it was ahead of time to enable local preemption by
    default considering the fact that even on downstream kernel it is only
    enabled if requested via UAPI.
    
    Fixes: a7a4c19c36de ("drm/msm/a5xx: fix setting of the CP_PREEMPT_ENABLE_LOCAL register")
    Signed-off-by: Vladimir Lypak <vladimir.lypak@xxxxxxxxx>
    Patchwork: https://patchwork.freedesktop.org/patch/612041/
    Signed-off-by: Rob Clark <robdclark@xxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
index 65c2c5361e5fc..c3f35bee9b8d8 100644
--- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -134,9 +134,13 @@ static void a5xx_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit,
 	OUT_PKT7(ring, CP_SET_PROTECTED_MODE, 1);
 	OUT_RING(ring, 1);
 
-	/* Enable local preemption for finegrain preemption */
+	/*
+	 * Disable local preemption by default because it requires
+	 * user-space to be aware of it and provide additional handling
+	 * to restore rendering state or do various flushes on switch.
+	 */
 	OUT_PKT7(ring, CP_PREEMPT_ENABLE_LOCAL, 1);
-	OUT_RING(ring, 0x1);
+	OUT_RING(ring, 0x0);
 
 	/* Allow CP_CONTEXT_SWITCH_YIELD packets in the IB2 */
 	OUT_PKT7(ring, CP_YIELD_ENABLE, 1);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux