[AMD Official Use Only - General] Thanks , and your suggestion sounds like a good idea , sometimes we might just want to enable the log when we want to run something specific . I think what we need is an API that driver can tell MES to enable it during runtime . I will think it and check with MES engineer.
Regards Shaoyun.liu -----Original Message----- From: Alex Deucher <alexdeuc...@gmail.com> Sent: Tuesday, March 26, 2024 12:50 PM To: Liu, Shaoyun <shaoyun....@amd.com> Cc: amd-gfx@lists.freedesktop.org Subject: Re: [PATCH] drm/amdgpu : Add mes_log_enable to control mes log feature On Tue, Mar 26, 2024 at 11:51 AM Liu, Shaoyun <shaoyun....@amd.com> wrote: > > [AMD Official Use Only - General] > > > ping Maybe we'd want to make this something we could dynamically enable via debugfs? Not sure how much of a pain it would be to change this at runtime. Something we can think about for the future. Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> > > > > From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of > Liu, Shaoyun > Sent: Monday, March 25, 2024 8:51 AM > To: amd-gfx@lists.freedesktop.org > Subject: Re: [PATCH] drm/amdgpu : Add mes_log_enable to control mes > log feature > > > > [AMD Official Use Only - General] > > > > [AMD Official Use Only - General] > > > > Ping > > > > Get Outlook for iOS > > ________________________________ > > From: Liu, Shaoyun <shaoyun....@amd.com> > Sent: Friday, March 22, 2024 2:00:21 PM > To: amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org> > Cc: Liu, Shaoyun <shaoyun....@amd.com> > Subject: [PATCH] drm/amdgpu : Add mes_log_enable to control mes log > feature > > > > The MES log might slow down the performance for extra step of log the > data, disable it by default and introduce a parameter can enable it > when necessary > > Signed-off-by: shaoyunl <shaoyun....@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 10 ++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 5 ++++- > drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 7 +++++-- > 4 files changed, 20 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index 9c62552bec34..b3b84647207e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -210,6 +210,7 @@ extern int amdgpu_async_gfx_ring; extern int > amdgpu_mcbp; extern int amdgpu_discovery; extern int amdgpu_mes; > +extern int amdgpu_mes_log_enable; > extern int amdgpu_mes_kiq; > extern int amdgpu_noretry; > extern int amdgpu_force_asic_type; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index 80b9642f2bc4..e4277298cf1a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -195,6 +195,7 @@ int amdgpu_async_gfx_ring = 1; int amdgpu_mcbp = > -1; int amdgpu_discovery = -1; int amdgpu_mes; > +int amdgpu_mes_log_enable = 0; > int amdgpu_mes_kiq; > int amdgpu_noretry = -1; > int amdgpu_force_asic_type = -1; > @@ -667,6 +668,15 @@ MODULE_PARM_DESC(mes, > "Enable Micro Engine Scheduler (0 = disabled (default), 1 = > enabled)"); module_param_named(mes, amdgpu_mes, int, 0444); > > +/** > + * DOC: mes_log_enable (int) > + * Enable Micro Engine Scheduler log. This is used to enable/disable MES > internal log. > + * (0 = disabled (default), 1 = enabled) */ > +MODULE_PARM_DESC(mes_log_enable, > + "Enable Micro Engine Scheduler log (0 = disabled (default), 1 > += enabled)"); module_param_named(mes_log_enable, > +amdgpu_mes_log_enable, int, 0444); > + > /** > * DOC: mes_kiq (int) > * Enable Micro Engine Scheduler KIQ. This is a new engine pipe for kiq. > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c > index 78dfd027dc99..9ace848e174c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c > @@ -100,6 +100,9 @@ static int amdgpu_mes_event_log_init(struct > amdgpu_device *adev) { > int r; > > + if (!amdgpu_mes_log_enable) > + return 0; > + > r = amdgpu_bo_create_kernel(adev, PAGE_SIZE, PAGE_SIZE, > AMDGPU_GEM_DOMAIN_GTT, > &adev->mes.event_log_gpu_obj, @@ > -1561,7 +1564,7 @@ void amdgpu_debugfs_mes_event_log_init(struct > amdgpu_device *adev) #if defined(CONFIG_DEBUG_FS) > struct drm_minor *minor = adev_to_drm(adev)->primary; > struct dentry *root = minor->debugfs_root; > - if (adev->enable_mes) > + if (adev->enable_mes && amdgpu_mes_log_enable) > debugfs_create_file("amdgpu_mes_event_log", 0444, root, > adev, > &amdgpu_debugfs_mes_event_log_fops); > > diff --git a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c > b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c > index 072c478665ad..63f281a9984d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c > @@ -411,8 +411,11 @@ static int mes_v11_0_set_hw_resources(struct amdgpu_mes > *mes) > mes_set_hw_res_pkt.enable_reg_active_poll = 1; > mes_set_hw_res_pkt.enable_level_process_quantum_check = 1; > mes_set_hw_res_pkt.oversubscription_timer = 50; > - mes_set_hw_res_pkt.enable_mes_event_int_logging = 1; > - mes_set_hw_res_pkt.event_intr_history_gpu_mc_ptr = > mes->event_log_gpu_addr; > + if (amdgpu_mes_log_enable) { > + mes_set_hw_res_pkt.enable_mes_event_int_logging = 1; > + mes_set_hw_res_pkt.event_intr_history_gpu_mc_ptr = > + mes->event_log_gpu_addr; > + } > > return mes_v11_0_submit_pkt_and_poll_completion(mes, > &mes_set_hw_res_pkt, > sizeof(mes_set_hw_res_pkt), > -- > 2.34.1