[PATCH] drm/amdgpu : Increase the mes log buffer size as per new MES FW version

Liu, Shaoyun Shaoyun.Liu at amd.com
Tue Mar 26 18:47:19 UTC 2024


[AMD Official Use Only - General]

That requires extra work in MES and  API  level change to let driver send this info to MES . I think that's kind of unnecessary complicated.
The original problem is MES fw doesn't encapsulate their API defines  good enough .  Windows driver directly use MES internal structure to calculate the  buffer size.
I already pushed  MES team to have all the  necessary info including this  log buffer size defined in mes_api_def.h  .  We also agreed that maximum log buffer size won't exceed 0x4000 in the near future . This will happens on the new MES release  and may take some time for driver side to pick it up , but before this I'd like to have  a solution that can fix the  issue ASAP .

Regards
Shaoyun.liu

-----Original Message-----
From: Kuehling, Felix <Felix.Kuehling at amd.com>
Sent: Tuesday, March 26, 2024 2:07 PM
To: Liu, Shaoyun <Shaoyun.Liu at amd.com>; amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH] drm/amdgpu : Increase the mes log buffer size as per new MES FW version


On 2024-03-25 19:33, Liu, Shaoyun wrote:
> [AMD Official Use Only - General]
>
> It can  cause page fault  when the  log size exceed the  page size .

I'd consider that a breaking change in the firmware that should be avoided. Is there a way the updated driver can tell the FW the log size that it allocated, so that old drivers continue to work with new firmware?

Regards,
   Felix


>
> -----Original Message-----
> From: Kuehling, Felix <Felix.Kuehling at amd.com>
> Sent: Monday, March 25, 2024 2:58 PM
> To: Liu, Shaoyun <Shaoyun.Liu at amd.com>; amd-gfx at lists.freedesktop.org
> Subject: Re: [PATCH] drm/amdgpu : Increase the mes log buffer size as
> per new MES FW version
>
>
> On 2024-03-22 12:49, shaoyunl wrote:
>>   From MES version 0x54, the log entry increased and require the log
>> buffer size to be increased. The 16k is maximum size agreed
> What happens when you run the new firmware on an old kernel that only allocates 4KB?
>
> Regards,
>     Felix
>
>
>> Signed-off-by: shaoyunl <shaoyun.liu at amd.com>
>> ---
>>    drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 5 ++---
>>    drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 1 +
>>    2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
>> index 9ace848e174c..78e4f88f5134 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
>> @@ -103,7 +103,7 @@ static int amdgpu_mes_event_log_init(struct amdgpu_device *adev)
>>        if (!amdgpu_mes_log_enable)
>>                return 0;
>>
>> -     r = amdgpu_bo_create_kernel(adev, PAGE_SIZE, PAGE_SIZE,
>> +     r = amdgpu_bo_create_kernel(adev, AMDGPU_MES_LOG_BUFFER_SIZE,
>> +PAGE_SIZE,
>>                                    AMDGPU_GEM_DOMAIN_GTT,
>>                                    &adev->mes.event_log_gpu_obj,
>>                                    &adev->mes.event_log_gpu_addr, @@
>> -1548,12 +1548,11 @@ static int amdgpu_debugfs_mes_event_log_show(struct seq_file *m, void *unused)
>>        uint32_t *mem = (uint32_t *)(adev->mes.event_log_cpu_addr);
>>
>>        seq_hex_dump(m, "", DUMP_PREFIX_OFFSET, 32, 4,
>> -                  mem, PAGE_SIZE, false);
>> +                  mem, AMDGPU_MES_LOG_BUFFER_SIZE, false);
>>
>>        return 0;
>>    }
>>
>> -
>>    DEFINE_SHOW_ATTRIBUTE(amdgpu_debugfs_mes_event_log);
>>
>>    #endif
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
>> index 7d4f93fea937..4c8fc3117ef8 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
>> @@ -52,6 +52,7 @@ enum amdgpu_mes_priority_level {
>>
>>    #define AMDGPU_MES_PROC_CTX_SIZE 0x1000 /* one page area */
>>    #define AMDGPU_MES_GANG_CTX_SIZE 0x1000 /* one page area */
>> +#define AMDGPU_MES_LOG_BUFFER_SIZE 0x4000 /* Maximu log buffer size
>> +for MES */
>>
>>    struct amdgpu_mes_funcs;
>>


More information about the amd-gfx mailing list