Hi,
Gentle ping to land the fix for the kernel crash.
If faster, I can send a new version increasing max surfaces to 4 as
previously discussed.
There are now two bug reports for the same issue:
- https://gitlab.freedesktop.org/drm/amd/-/issues/3693
- https://gitlab.freedesktop.org/drm/amd/-/issues/3594
Best Regards,
Melissa
On 27/09/2024 15:20, Melissa Wen wrote:
Hi Zaeem,
Thanks for explaining their relationship.
So IIUC, current DM implementation for dc_surface_updates array is
wrong, since it's taking MAX_SURFACES (=3) for allocation but
MAX_PLANES (=6) as the upper bound of size of the dc_surface_updates
array, as you can see in this allocation and after an iteration from 0
to `plane_count`:
https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c#L9861
Another question to understand what would be the right fix for the
implementation above-mentioned: with the cursor overlay mode, it means
we are using one of the overlay planes for this cursor overlay mode
(one from the "max_slave_planes") or this cursor plane is an extra
plane, which means, for some drivers, one primary plane + two overlay
planes + one plane for cursor overlay mode (max 4 planes) ?
BR,
Melissa
On 27/09/2024 14:40, Mohamed, Zaeem wrote:
[AMD Official Use Only - AMD Internal Distribution Only]
Hi Melissa,
MAX_SURFACE_NUM and MAX_PLANES both represent the upper bound of
planes that are supported by HW. It is best to replace
MAX_SURFACE_NUM with MAX_PLANES to remove redundancy. MAX_SURFACES is
used to represent the upper bound of surfaces that can be piped to a
single CRTC. Keep MAX_SURFACES as is to keep stack size down, and
replace MAX_SURFACE_NUM with MAX_PLANES.
Thanks,
Zaeem
-----Original Message-----
From: dri-devel <dri-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf
Of Melissa Wen
Sent: Wednesday, September 25, 2024 11:37 AM
To: harry.wentland@xxxxxxx; sunpeng.li@xxxxxxx;
Rodrigo.Siqueira@xxxxxxx; alexander.deucher@xxxxxxx;
christian.koenig@xxxxxxx; Xinhui.Pan@xxxxxxx; airlied@xxxxxxxxx;
daniel@xxxxxxxx
Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: [PATCH 1/2] drm/amd/display: increase max surfaces in line
with planes and streams
091a97e542cf ("drm/amd/display: Fix warning. Set MAX_SURFACES to 3")
reduced the max number of surfaces since, at that time, there was no
use for more. However, HW and driver evolves and there are now driver
versions that allow two overlay planes (max_slave_planes). Moreover,
commit 3cfd03b79425 ("drm/amd/display: update max streams per
surface") states 6 is the max surfaces supported asics can have.
Therefore, update MAX_SURFACES to match MAX_SURFACE_NUM, MAX_PLANES
and MAX_STREAMS.
It also addresses array-index-out-of-bounds reported in the link.
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3594
Signed-off-by: Melissa Wen <mwen@xxxxxxxxxx>
---
drivers/gpu/drm/amd/display/dc/dc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/dc/dc.h
b/drivers/gpu/drm/amd/display/dc/dc.h
index 3992ad73165b..08b00b263533 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -57,7 +57,7 @@ struct dmub_notification;
#define DC_VER "3.2.301"
-#define MAX_SURFACES 3
+#define MAX_SURFACES 6
#define MAX_PLANES 6
#define MAX_STREAMS 6
#define MIN_VIEWPORT_SIZE 12
--
2.45.2