[PATCH 1/2] drm/amdkfd: Initialize HSA_CAP_ATS_PRESENT capability in topology codes

Kuehling, Felix Felix.Kuehling at amd.com
Mon Jun 10 23:35:30 UTC 2019


On 2019-06-10 13:48, Zeng, Oak wrote:
> Move HSA_CAP_ATS_PRESENT initialization logic from kfd iommu codes to
> kfd topology codes. This removes kfd_iommu_device_init's dependency
> on kfd_topology_add_device. Also remove duplicate code setting the
> same.
>
> Change-Id: I2bf3c000d4795b41afe1b39fe679677c1f86bfbe
> Signed-off-by: Oak Zeng <Oak.Zeng at amd.com>
> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_iommu.c    | 10 +---------
>   drivers/gpu/drm/amd/amdkfd/kfd_topology.c |  6 +++++-
>   2 files changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_iommu.c b/drivers/gpu/drm/amd/amdkfd/kfd_iommu.c
> index 0149475..5f35df2 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_iommu.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_iommu.c
> @@ -66,16 +66,8 @@ int kfd_iommu_device_init(struct kfd_dev *kfd)
>   
>   	top_dev = kfd_topology_device_by_id(kfd->id);
>   
> -	/*
> -	 * Overwrite ATS capability according to needs_iommu_device to fix
> -	 * potential missing corresponding bit in CRAT of BIOS.
> -	 */

It would be good to preserve this comment by moving it to 
kfd_topology_add_device.


> -	if (!kfd->device_info->needs_iommu_device) {
> -		top_dev->node_props.capability &= ~HSA_CAP_ATS_PRESENT;
> +	if (!kfd->device_info->needs_iommu_device)
>   		return 0;
> -	}
> -
> -	top_dev->node_props.capability |= HSA_CAP_ATS_PRESENT;
>   
>   	iommu_info.flags = 0;
>   	err = amd_iommu_device_info(kfd->pdev, &iommu_info);
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> index d241a86..1c184b3 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> @@ -1330,6 +1330,11 @@ int kfd_topology_add_device(struct kfd_dev *gpu)
>   		     dev->gpu->device_info->asic_family);
>   	}
>   
> +	if (dev->gpu->device_info->needs_iommu_device)
> +		dev->node_props.capability |= HSA_CAP_ATS_PRESENT;
> +	else
> +		dev->node_props.capability &= ~HSA_CAP_ATS_PRESENT;
> +
>   	/* Fix errors in CZ CRAT.
>   	 * simd_count: Carrizo CRAT reports wrong simd_count, probably
>   	 *		because it doesn't consider masked out CUs
> @@ -1340,7 +1345,6 @@ int kfd_topology_add_device(struct kfd_dev *gpu)
>   		dev->node_props.simd_count =
>   			cu_info.simd_per_cu * cu_info.cu_active_number;
>   		dev->node_props.max_waves_per_simd = 10;
> -		dev->node_props.capability |= HSA_CAP_ATS_PRESENT;

There is a comment above the if-block that should be updated when you 
remove this.

With these two comments fixed, the series is Reviewed-by: Felix Kuehling 
<Felix.Kuehling at amd.com>

Regards,
   Felix


>   	}
>   
>   	ctx = amdgpu_ras_get_context((struct amdgpu_device *)(dev->gpu->kgd));


More information about the amd-gfx mailing list