[PATCH] drm/amdgpu : Add mes_log_enable to control mes log feature

Alex Deucher alexdeucher at gmail.com
Tue Mar 26 16:50:13 UTC 2024


On Tue, Mar 26, 2024 at 11:51 AM Liu, Shaoyun <Shaoyun.Liu at 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.deucher at amd.com>

>
>
>
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Liu, Shaoyun
> Sent: Monday, March 25, 2024 8:51 AM
> To: amd-gfx at 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.Liu at amd.com>
> Sent: Friday, March 22, 2024 2:00:21 PM
> To: amd-gfx at lists.freedesktop.org <amd-gfx at lists.freedesktop.org>
> Cc: Liu, Shaoyun <Shaoyun.Liu at 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.liu at 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


More information about the amd-gfx mailing list