[PATCH 16/24] drm/amdkfd: use bit operation set debug trap

Yat Sin, David David.YatSin at amd.com
Fri Nov 10 19:08:35 UTC 2023


[AMD Official Use Only - General]

> -----Original Message-----
> From: Zhu, James <James.Zhu at amd.com>
> Sent: Friday, November 3, 2023 9:12 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Kuehling, Felix <Felix.Kuehling at amd.com>; Greathouse, Joseph
> <Joseph.Greathouse at amd.com>; Yat Sin, David <David.YatSin at amd.com>; Zhu,
> James <James.Zhu at amd.com>
> Subject: [PATCH 16/24] drm/amdkfd: use bit operation set debug trap
>
> 1st level TMA's 2nd byte which used for trap type setting, to use bit operation to
> change selected bit only.
>
> Signed-off-by: James Zhu <James.Zhu at amd.com>
> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_process.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> index fbf053001af9..a0b729c65a7c 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> @@ -1434,13 +1434,23 @@ bool kfd_process_xnack_mode(struct kfd_process
> *p, bool supported)
>       return true;
>  }
>
> +/* bit offset in 1st-level TMA's 2nd byte which used for
> +KFD_TRAP_TYPE_BIT */ enum KFD_TRAP_TYPE_BIT {
Nit pick. New line after comment
> +     KFD_TRAP_TYPE_DEBUG = 0,                /* bit 0 for debug trap */
> +     KFD_TRAP_TYPE_HOST,
> +     KFD_TRAP_TYPE_STOCHASTIC,
> +};
> +
>  void kfd_process_set_trap_debug_flag(struct qcm_process_device *qpd,
>                                    bool enabled)
>  {
>       if (qpd->cwsr_kaddr) {
> -             uint64_t *tma =
> -                     (uint64_t *)(qpd->cwsr_kaddr +
> KFD_CWSR_TMA_OFFSET);
> -             tma[2] = enabled;
> +             volatile unsigned long *tma =
> +                     (volatile unsigned long *)(qpd->cwsr_kaddr +
> KFD_CWSR_TMA_OFFSET);
> +             if (enabled)
> +                     set_bit(KFD_TRAP_TYPE_DEBUG, &tma[2]);
> +             else
> +                     clear_bit(KFD_TRAP_TYPE_DEBUG, &tma[2]);
>       }
>  }
>
> --
> 2.25.1



More information about the amd-gfx mailing list