[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@xxxxxxx> Sent: Tuesday, March 26, 2024 2:07 PM To: Liu, Shaoyun <Shaoyun.Liu@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx 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@xxxxxxx> > Sent: Monday, March 25, 2024 2:58 PM > To: Liu, Shaoyun <Shaoyun.Liu@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx > 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@xxxxxxx> >> --- >> 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; >>