[PATCH] drm/amdgpu: disable mcbp if parameter zero is set

Alex Deucher alexdeucher at gmail.com
Wed Aug 9 13:55:21 UTC 2023


On Tue, Aug 8, 2023 at 11:21 PM <jiadong.zhu at amd.com> wrote:
>
> From: Jiadong Zhu <Jiadong.Zhu at amd.com>
>
> The parameter amdgpu_mcbp shall have priority against the default value
> calculated from the chip version.
> User could disable mcbp by setting the parameter mcbp as zero.
>
> v2: do not trigger preemption in sw ring muxer when mcbp is disabled.
>
> Signed-off-by: Jiadong Zhu <Jiadong.Zhu at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c   | 9 +++++----
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c | 2 +-
>  2 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 7314529553f6..615669dcabc2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3699,10 +3699,11 @@ static void amdgpu_device_set_mcbp(struct amdgpu_device *adev)
>  {
>         if (amdgpu_mcbp == 1)
>                 adev->gfx.mcbp = true;
> -
> -       if ((adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 0, 0)) &&
> -           (adev->ip_versions[GC_HWIP][0] < IP_VERSION(10, 0, 0)) &&
> -           adev->gfx.num_gfx_rings)
> +       else if (amdgpu_mcbp == 0)
> +               adev->gfx.mcbp = false;
> +       else if ((adev->ip_versions[GC_HWIP][0] >= IP_VERSION(9, 0, 0)) &&
> +                (adev->ip_versions[GC_HWIP][0] < IP_VERSION(10, 0, 0)) &&
> +                adev->gfx.num_gfx_rings)
>                 adev->gfx.mcbp = true;
>
>         if (amdgpu_sriov_vf(adev))
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
> index b779ee4bbaa7..e1ee1c7117fb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
> @@ -397,7 +397,7 @@ void amdgpu_sw_ring_ib_begin(struct amdgpu_ring *ring)
>         struct amdgpu_ring_mux *mux = &adev->gfx.muxer;
>
>         WARN_ON(!ring->is_sw_ring);
> -       if (ring->hw_prio > AMDGPU_RING_PRIO_DEFAULT) {
> +       if (adev->gfx.mcbp && ring->hw_prio > AMDGPU_RING_PRIO_DEFAULT) {
>                 if (amdgpu_mcbp_scan(mux) > 0)
>                         amdgpu_mcbp_trigger_preempt(mux);
>                 return;
> --
> 2.25.1
>


More information about the amd-gfx mailing list