RE: [PATCH 1/2] drm/amd/display: increase max surfaces in line with planes and streams

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

 



[AMD Official Use Only - AMD Internal Distribution Only]

Hi,

A patch addressing this will be sent out soon.

Thanks,
Zaeem

-----Original Message-----
From: Melissa Wen <mwen@xxxxxxxxxx>
Sent: Tuesday, October 22, 2024 11:58 AM
To: Mohamed, Zaeem <Zaeem.Mohamed@xxxxxxx>; Wentland, Harry <Harry.Wentland@xxxxxxx>; Li, Sun peng (Leo) <Sunpeng.Li@xxxxxxx>; Siqueira, Rodrigo <Rodrigo.Siqueira@xxxxxxx>; Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Koenig, Christian <Christian.Koenig@xxxxxxx>; Pan, Xinhui <Xinhui.Pan@xxxxxxx>; airlied@xxxxxxxxx; daniel@xxxxxxxx
Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH 1/2] drm/amd/display: increase max surfaces in line with planes and streams

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/disp
> lay/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
>>
>





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux