AMD General
Ping, any comments?
Regards,
Prike
> -----Original Message-----
> From: Liang, Prike <[email protected]>
> Sent: Tuesday, September 29, 2026 11:47 AM
> To: [email protected]
> Cc: Deucher, Alexander <[email protected]>; Koenig, Christian
> <[email protected]>; Prosyak, Vitaly <[email protected]>; Liang,
> Prike <[email protected]>
> Subject: [PATCH v2 06/14] drm/amdgpu/mes: move RS64 query buffer setup to
> software init
>
> Place the RS64 context-size query buffer's allocation with software
> initialization,
> outside reset-time hardware initialization and its firmware locks. Hardware
> initialization only consumes the buffer.
>
> Signed-off-by: Prike Liang <[email protected]>
> ---
> drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 19 +++++++++----------
> 1 file changed, 9 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> index 51bfb672bed7..2f62214ab24f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
> @@ -1746,6 +1746,7 @@ static int mes_v11_0_sw_init(struct amdgpu_ip_block
> *ip_block)
> struct amdgpu_device *adev = ip_block->adev;
> int pipe, r, bo_size;
>
> + adev->mes.use_rs64mem = false;
> adev->mes.funcs = &mes_v11_0_funcs;
> adev->mes.kiq_hw_init = &mes_v11_0_kiq_hw_init;
> adev->mes.kiq_hw_fini = &mes_v11_0_kiq_hw_fini; @@ -1796,6 +1797,14
> @@ static int mes_v11_0_sw_init(struct amdgpu_ip_block *ip_block)
> return r;
> }
>
> + /* Allocate GPU buffer for array size query results */
> + r = amdgpu_mes_rs64mem_init(&adev->mes);
> + if (r) {
> + dev_warn(adev->dev,
> + "RS64 memory init failed (%d), using system memory\n",
> r);
> + adev->mes.use_rs64mem = false;
> + }
> +
> return 0;
> }
>
> @@ -1973,8 +1982,6 @@ static int mes_v11_0_hw_init(struct amdgpu_ip_block
> *ip_block)
> if (adev->mes.ring[0].sched.ready)
> goto out;
>
> - adev->mes.use_rs64mem = false;
> -
> if (!adev->enable_mes_kiq) {
> if (adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
> r = mes_v11_0_load_microcode(adev,
> @@ -1992,14 +1999,6 @@ static int mes_v11_0_hw_init(struct amdgpu_ip_block
> *ip_block)
> if (r)
> goto failure;
>
> - /* Allocate GPU buffer for array size query results */
> - r = amdgpu_mes_rs64mem_init(&adev->mes);
> - if (r) {
> - dev_warn(adev->dev,
> - "RS64 local memory init failed (%d),"
> - "falling back to system memory path\n", r);
> - adev->mes.use_rs64mem = false;
> - }
> r = mes_v11_0_set_hw_resources(&adev->mes);
>
> if (r)
> --
> 2.34.1