[PATCH 10/13] drm/amdkfd: replace kgd_dev in get amdgpu_amdkfd funcs

Sider, Graham Graham.Sider at amd.com
Tue Oct 26 22:12:57 UTC 2021


[AMD Official Use Only]

> -----Original Message-----
> From: Kuehling, Felix <Felix.Kuehling at amd.com>
> Sent: Tuesday, October 26, 2021 5:24 PM
> To: Sider, Graham <Graham.Sider at amd.com>; amd-
> gfx at lists.freedesktop.org
> Cc: Joshi, Mukul <Mukul.Joshi at amd.com>
> Subject: Re: [PATCH 10/13] drm/amdkfd: replace kgd_dev in get
> amdgpu_amdkfd funcs
> 
> Am 2021-10-19 um 5:13 p.m. schrieb Graham Sider:
> > Modified definitions:
> >
> > - amdgpu_amdkfd_get_fw_version
> > - amdgpu_amdkfd_get_local_mem_info
> > - amdgpu_amdkfd_get_gpu_clock_counter
> > - amdgpu_amdkfd_get_max_engine_clock_in_mhz
> > - amdgpu_amdkfd_get_cu_info
> > - amdgpu_amdkfd_get_dmabuf_info
> > - amdgpu_amdkfd_get_vram_usage
> > - amdgpu_amdkfd_get_hive_id
> > - amdgpu_amdkfd_get_unique_id
> > - amdgpu_amdkfd_get_mmio_remap_phys_addr
> > - amdgpu_amdkfd_get_num_gws
> > - amdgpu_amdkfd_get_asic_rev_id
> > - amdgpu_amdkfd_get_noretry
> > - amdgpu_amdkfd_get_xgmi_hops_count
> > - amdgpu_amdkfd_get_xgmi_bandwidth_mbytes
> > - amdgpu_amdkfd_get_pcie_bandwidth_mbytes
> >
> > Also replaces kfd_device_by_kgd with kfd_device_by_adev, now
> searching
> > via adev rather than kgd.
> 
> Some of these functions are so trivial, they could probably be replaced with
> direct accesses to the respective fields in adev from KFD:
> 
>   * amdgpu_amdkfd_get_hive_id
>   * amdgpu_amdkfd_get_unique_id
>   * amdgpu_amdkfd_get_mmio_remap_phys_addr
>   * amdgpu_amdkfd_get_num_gws
>   * amdgpu_amdkfd_get_asic_rev_id
>   * amdgpu_amdkfd_get_noretry
> 
> I'd do that with a separate follow-up patch, though.
> 
> Regards,
>   Felix
> 

Sounds good, I'll go ahead and replace these ones mentioned in a follow-up. Thanks!

Best,
Graham

> 
> >
> > Signed-off-by: Graham Sider <Graham.Sider at amd.com>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    | 73 +++++++---------
> ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h    | 38 +++++-----
> >  drivers/gpu/drm/amd/amdkfd/kfd_chardev.c      | 16 ++--
> >  drivers/gpu/drm/amd/amdkfd/kfd_crat.c         | 16 ++--
> >  drivers/gpu/drm/amd/amdkfd/kfd_device.c       | 14 ++--
> >  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c  |  2 +-
> >  drivers/gpu/drm/amd/amdkfd/kfd_priv.h         |  2 +-
> >  .../amd/amdkfd/kfd_process_queue_manager.c    |  2 +-
> >  drivers/gpu/drm/amd/amdkfd/kfd_topology.c     | 18 ++---
> >  9 files changed, 82 insertions(+), 99 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> > index 69fc8f0d9c45..79a2e37baa59 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> > @@ -358,11 +358,9 @@ void amdgpu_amdkfd_free_gws(struct
> amdgpu_device *adev, void *mem_obj)
> >  	amdgpu_bo_unref(&bo);
> >  }
> >
> > -uint32_t amdgpu_amdkfd_get_fw_version(struct kgd_dev *kgd,
> > +uint32_t amdgpu_amdkfd_get_fw_version(struct amdgpu_device *adev,
> >  				      enum kgd_engine_type type)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	switch (type) {
> >  	case KGD_ENGINE_PFP:
> >  		return adev->gfx.pfp_fw_version;
> > @@ -395,11 +393,9 @@ uint32_t amdgpu_amdkfd_get_fw_version(struct
> kgd_dev *kgd,
> >  	return 0;
> >  }
> >
> > -void amdgpu_amdkfd_get_local_mem_info(struct kgd_dev *kgd,
> > +void amdgpu_amdkfd_get_local_mem_info(struct amdgpu_device
> *adev,
> >  				      struct kfd_local_mem_info *mem_info)  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	memset(mem_info, 0, sizeof(*mem_info));
> >
> >  	mem_info->local_mem_size_public = adev->gmc.visible_vram_size;
> @@
> > -424,19 +420,15 @@ void amdgpu_amdkfd_get_local_mem_info(struct
> kgd_dev *kgd,
> >  		mem_info->mem_clk_max = 100;
> >  }
> >
> > -uint64_t amdgpu_amdkfd_get_gpu_clock_counter(struct kgd_dev *kgd)
> > +uint64_t amdgpu_amdkfd_get_gpu_clock_counter(struct
> amdgpu_device
> > +*adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	if (adev->gfx.funcs->get_gpu_clock_counter)
> >  		return adev->gfx.funcs->get_gpu_clock_counter(adev);
> >  	return 0;
> >  }
> >
> > -uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct
> kgd_dev
> > *kgd)
> > +uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct
> > +amdgpu_device *adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	/* the sclk is in quantas of 10kHz */
> >  	if (amdgpu_sriov_vf(adev))
> >  		return adev->clock.default_sclk / 100; @@ -446,9 +438,8 @@
> uint32_t
> > amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct kgd_dev *kgd)
> >  		return 100;
> >  }
> >
> > -void amdgpu_amdkfd_get_cu_info(struct kgd_dev *kgd, struct
> > kfd_cu_info *cu_info)
> > +void amdgpu_amdkfd_get_cu_info(struct amdgpu_device *adev, struct
> > +kfd_cu_info *cu_info)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> >  	struct amdgpu_cu_info acu_info = adev->gfx.cu_info;
> >
> >  	memset(cu_info, 0, sizeof(*cu_info)); @@ -469,13 +460,12 @@ void
> > amdgpu_amdkfd_get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info
> *cu_info)
> >  	cu_info->lds_size = acu_info.lds_size;  }
> >
> > -int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int
> dma_buf_fd,
> > -				  struct kgd_dev **dma_buf_kgd,
> > +int amdgpu_amdkfd_get_dmabuf_info(struct amdgpu_device *adev, int
> dma_buf_fd,
> > +				  struct amdgpu_device **dmabuf_adev,
> >  				  uint64_t *bo_size, void *metadata_buffer,
> >  				  size_t buffer_size, uint32_t *metadata_size,
> >  				  uint32_t *flags)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> >  	struct dma_buf *dma_buf;
> >  	struct drm_gem_object *obj;
> >  	struct amdgpu_bo *bo;
> > @@ -503,8 +493,8 @@ int amdgpu_amdkfd_get_dmabuf_info(struct
> kgd_dev *kgd, int dma_buf_fd,
> >  		goto out_put;
> >
> >  	r = 0;
> > -	if (dma_buf_kgd)
> > -		*dma_buf_kgd = (struct kgd_dev *)adev;
> > +	if (dmabuf_adev)
> > +		*dmabuf_adev = adev;
> >  	if (bo_size)
> >  		*bo_size = amdgpu_bo_size(bo);
> >  	if (metadata_buffer)
> > @@ -524,32 +514,28 @@ int amdgpu_amdkfd_get_dmabuf_info(struct
> kgd_dev *kgd, int dma_buf_fd,
> >  	return r;
> >  }
> >
> > -uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd)
> > +uint64_t amdgpu_amdkfd_get_vram_usage(struct amdgpu_device
> *adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> >  	struct ttm_resource_manager *vram_man =
> > ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM);
> >
> >  	return amdgpu_vram_mgr_usage(vram_man);  }
> >
> > -uint64_t amdgpu_amdkfd_get_hive_id(struct kgd_dev *kgd)
> > +uint64_t amdgpu_amdkfd_get_hive_id(struct amdgpu_device *adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	return adev->gmc.xgmi.hive_id;
> >  }
> >
> > -uint64_t amdgpu_amdkfd_get_unique_id(struct kgd_dev *kgd)
> > +uint64_t amdgpu_amdkfd_get_unique_id(struct amdgpu_device *adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	return adev->unique_id;
> >  }
> >
> > -uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct kgd_dev *dst,
> struct
> > kgd_dev *src)
> > +uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct amdgpu_device
> *dst,
> > +					  struct amdgpu_device *src)
> >  {
> > -	struct amdgpu_device *peer_adev = (struct amdgpu_device *)src;
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)dst;
> > +	struct amdgpu_device *peer_adev = src;
> > +	struct amdgpu_device *adev = dst;
> >  	int ret = amdgpu_xgmi_get_hops_count(adev, peer_adev);
> >
> >  	if (ret < 0) {
> > @@ -561,16 +547,18 @@ uint8_t
> amdgpu_amdkfd_get_xgmi_hops_count(struct kgd_dev *dst, struct
> kgd_dev *s
> >  	return  (uint8_t)ret;
> >  }
> >
> > -int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct kgd_dev *dst,
> > struct kgd_dev *src, bool is_min)
> > +int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct
> amdgpu_device *dst,
> > +					    struct amdgpu_device *src,
> > +					    bool is_min)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)dst,
> *peer_adev;
> > +	struct amdgpu_device *adev = dst, *peer_adev;
> >  	int num_links;
> >
> >  	if (adev->asic_type != CHIP_ALDEBARAN)
> >  		return 0;
> >
> >  	if (src)
> > -		peer_adev = (struct amdgpu_device *)src;
> > +		peer_adev = src;
> >
> >  	/* num links returns 0 for indirect peers since indirect route is
> unknown. */
> >  	num_links = is_min ? 1 : amdgpu_xgmi_get_num_links(adev,
> peer_adev);
> > @@ -585,9 +573,8 @@ int
> amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct kgd_dev *dst, struct
> kgd_dev
> >  	return (num_links * 16 * 25000)/BITS_PER_BYTE;  }
> >
> > -int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct kgd_dev *dev,
> bool
> > is_min)
> > +int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct
> amdgpu_device
> > +*adev, bool is_min)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)dev;
> >  	int num_lanes_shift = (is_min ? ffs(adev->pm.pcie_mlw_mask) :
> >  							fls(adev-
> >pm.pcie_mlw_mask)) - 1;
> >  	int gen_speed_shift = (is_min ? ffs(adev->pm.pcie_gen_mask & @@
> > -643,31 +630,23 @@ int
> amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct kgd_dev *dev, bool
> is_min)
> >  	return (num_lanes_factor *
> gen_speed_mbits_factor)/BITS_PER_BYTE;
> >  }
> >
> > -uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr(struct kgd_dev
> *kgd)
> > +uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr(struct
> amdgpu_device
> > +*adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	return adev->rmmio_remap.bus_addr;
> >  }
> >
> > -uint32_t amdgpu_amdkfd_get_num_gws(struct kgd_dev *kgd)
> > +uint32_t amdgpu_amdkfd_get_num_gws(struct amdgpu_device *adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	return adev->gds.gws_size;
> >  }
> >
> > -uint32_t amdgpu_amdkfd_get_asic_rev_id(struct kgd_dev *kgd)
> > +uint32_t amdgpu_amdkfd_get_asic_rev_id(struct amdgpu_device *adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	return adev->rev_id;
> >  }
> >
> > -int amdgpu_amdkfd_get_noretry(struct kgd_dev *kgd)
> > +int amdgpu_amdkfd_get_noretry(struct amdgpu_device *adev)
> >  {
> > -	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
> > -
> >  	return adev->gmc.noretry;
> >  }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> > index 8d5c18953723..7e3697a7a5cd 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> > @@ -209,29 +209,33 @@ int amdgpu_amdkfd_alloc_gws(struct
> amdgpu_device
> > *adev, size_t size,  void amdgpu_amdkfd_free_gws(struct amdgpu_device
> > *adev, void *mem_obj);  int amdgpu_amdkfd_add_gws_to_process(void
> > *info, void *gws, struct kgd_mem **mem);  int
> > amdgpu_amdkfd_remove_gws_from_process(void *info, void *mem);
> > -uint32_t amdgpu_amdkfd_get_fw_version(struct kgd_dev *kgd,
> > +uint32_t amdgpu_amdkfd_get_fw_version(struct amdgpu_device *adev,
> >  				      enum kgd_engine_type type); -void
> > amdgpu_amdkfd_get_local_mem_info(struct kgd_dev *kgd,
> > +void amdgpu_amdkfd_get_local_mem_info(struct amdgpu_device
> *adev,
> >  				      struct kfd_local_mem_info *mem_info); -
> uint64_t
> > amdgpu_amdkfd_get_gpu_clock_counter(struct kgd_dev *kgd);
> > +uint64_t amdgpu_amdkfd_get_gpu_clock_counter(struct
> amdgpu_device
> > +*adev);
> >
> > -uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct
> kgd_dev
> > *kgd); -void amdgpu_amdkfd_get_cu_info(struct kgd_dev *kgd, struct
> > kfd_cu_info *cu_info); -int amdgpu_amdkfd_get_dmabuf_info(struct
> kgd_dev *kgd, int dma_buf_fd,
> > -				  struct kgd_dev **dmabuf_kgd,
> > +uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct
> > +amdgpu_device *adev); void amdgpu_amdkfd_get_cu_info(struct
> amdgpu_device *adev,
> > +			       struct kfd_cu_info *cu_info); int
> > +amdgpu_amdkfd_get_dmabuf_info(struct amdgpu_device *adev, int
> dma_buf_fd,
> > +				  struct amdgpu_device **dmabuf_adev,
> >  				  uint64_t *bo_size, void *metadata_buffer,
> >  				  size_t buffer_size, uint32_t *metadata_size,
> >  				  uint32_t *flags);
> > -uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd); -
> uint64_t
> > amdgpu_amdkfd_get_hive_id(struct kgd_dev *kgd); -uint64_t
> > amdgpu_amdkfd_get_unique_id(struct kgd_dev *kgd); -uint64_t
> > amdgpu_amdkfd_get_mmio_remap_phys_addr(struct kgd_dev *kgd); -
> uint32_t
> > amdgpu_amdkfd_get_num_gws(struct kgd_dev *kgd); -uint32_t
> > amdgpu_amdkfd_get_asic_rev_id(struct kgd_dev *kgd); -int
> > amdgpu_amdkfd_get_noretry(struct kgd_dev *kgd); -uint8_t
> > amdgpu_amdkfd_get_xgmi_hops_count(struct kgd_dev *dst, struct
> kgd_dev
> > *src); -int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct kgd_dev
> > *dst, struct kgd_dev *src, bool is_min); -int
> > amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct kgd_dev *dev, bool
> > is_min);
> > +uint64_t amdgpu_amdkfd_get_vram_usage(struct amdgpu_device
> *adev);
> > +uint64_t amdgpu_amdkfd_get_hive_id(struct amdgpu_device *adev);
> > +uint64_t amdgpu_amdkfd_get_unique_id(struct amdgpu_device *adev);
> > +uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr(struct
> amdgpu_device
> > +*adev); uint32_t amdgpu_amdkfd_get_num_gws(struct amdgpu_device
> > +*adev); uint32_t amdgpu_amdkfd_get_asic_rev_id(struct
> amdgpu_device
> > +*adev); int amdgpu_amdkfd_get_noretry(struct amdgpu_device *adev);
> > +uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct amdgpu_device
> *dst,
> > +					  struct amdgpu_device *src);
> > +int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct
> amdgpu_device *dst,
> > +					    struct amdgpu_device *src,
> > +					    bool is_min);
> > +int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct
> amdgpu_device
> > +*adev, bool is_min);
> >
> >  /* Read user wptr from a specified user address space with page fault
> >   * disabled. The memory must be pinned and mapped to the hardware
> > when diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > index 7c4f14410a74..47acfef1aebd 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > @@ -850,7 +850,7 @@ static int kfd_ioctl_get_clock_counters(struct file
> *filep,
> >  	dev = kfd_device_by_id(args->gpu_id);
> >  	if (dev)
> >  		/* Reading GPU clock counter from KGD */
> > -		args->gpu_clock_counter =
> amdgpu_amdkfd_get_gpu_clock_counter(dev->kgd);
> > +		args->gpu_clock_counter =
> > +amdgpu_amdkfd_get_gpu_clock_counter(dev->adev);
> >  	else
> >  		/* Node without GPU resource */
> >  		args->gpu_clock_counter = 0;
> > @@ -1237,7 +1237,7 @@ bool kfd_dev_is_large_bar(struct kfd_dev *dev)
> >  	if (dev->use_iommu_v2)
> >  		return false;
> >
> > -	amdgpu_amdkfd_get_local_mem_info(dev->kgd, &mem_info);
> > +	amdgpu_amdkfd_get_local_mem_info(dev->adev, &mem_info);
> >  	if (mem_info.local_mem_size_private == 0 &&
> >  			mem_info.local_mem_size_public > 0)
> >  		return true;
> > @@ -1306,7 +1306,7 @@ static int kfd_ioctl_alloc_memory_of_gpu(struct
> file *filep,
> >  			err = -EINVAL;
> >  			goto err_unlock;
> >  		}
> > -		offset =
> amdgpu_amdkfd_get_mmio_remap_phys_addr(dev->kgd);
> > +		offset =
> amdgpu_amdkfd_get_mmio_remap_phys_addr(dev->adev);
> >  		if (!offset) {
> >  			err = -ENOMEM;
> >  			goto err_unlock;
> > @@ -1664,7 +1664,7 @@ static int kfd_ioctl_get_dmabuf_info(struct file
> > *filep,  {
> >  	struct kfd_ioctl_get_dmabuf_info_args *args = data;
> >  	struct kfd_dev *dev = NULL;
> > -	struct kgd_dev *dma_buf_kgd;
> > +	struct amdgpu_device *dmabuf_adev;
> >  	void *metadata_buffer = NULL;
> >  	uint32_t flags;
> >  	unsigned int i;
> > @@ -1684,15 +1684,15 @@ static int kfd_ioctl_get_dmabuf_info(struct file
> *filep,
> >  	}
> >
> >  	/* Get dmabuf info from KGD */
> > -	r = amdgpu_amdkfd_get_dmabuf_info(dev->kgd, args->dmabuf_fd,
> > -					  &dma_buf_kgd, &args->size,
> > +	r = amdgpu_amdkfd_get_dmabuf_info(dev->adev, args-
> >dmabuf_fd,
> > +					  &dmabuf_adev, &args->size,
> >  					  metadata_buffer, args-
> >metadata_size,
> >  					  &args->metadata_size, &flags);
> >  	if (r)
> >  		goto exit;
> >
> >  	/* Reverse-lookup gpu_id from kgd pointer */
> > -	dev = kfd_device_by_kgd(dma_buf_kgd);
> > +	dev = kfd_device_by_adev(dmabuf_adev);
> >  	if (!dev) {
> >  		r = -EINVAL;
> >  		goto exit;
> > @@ -2050,7 +2050,7 @@ static int kfd_mmio_mmap(struct kfd_dev *dev,
> struct kfd_process *process,
> >  	if (vma->vm_end - vma->vm_start != PAGE_SIZE)
> >  		return -EINVAL;
> >
> > -	address = amdgpu_amdkfd_get_mmio_remap_phys_addr(dev-
> >kgd);
> > +	address = amdgpu_amdkfd_get_mmio_remap_phys_addr(dev-
> >adev);
> >
> >  	vma->vm_flags |= VM_IO | VM_DONTCOPY | VM_DONTEXPAND |
> VM_NORESERVE |
> >  				VM_DONTDUMP | VM_PFNMAP;
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > index cfedfb1e8596..7143550becb0 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > @@ -1993,16 +1993,16 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int
> *avail_size,
> >  		if (adev->asic_type == CHIP_ALDEBARAN) {
> >  			sub_type_hdr->minimum_bandwidth_mbs =
> >
> 	amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(
> > -							kdev->kgd, NULL,
> true);
> > +							kdev->adev, NULL,
> true);
> >  			sub_type_hdr->maximum_bandwidth_mbs =
> >  					sub_type_hdr-
> >minimum_bandwidth_mbs;
> >  		}
> >  	} else {
> >  		sub_type_hdr->io_interface_type =
> CRAT_IOLINK_TYPE_PCIEXPRESS;
> >  		sub_type_hdr->minimum_bandwidth_mbs =
> > -
> 	amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->kgd, true);
> > +
> 	amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->adev, true);
> >  		sub_type_hdr->maximum_bandwidth_mbs =
> > -
> 	amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->kgd, false);
> > +
> 	amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->adev, false);
> >  	}
> >
> >  	sub_type_hdr->proximity_domain_from = proximity_domain; @@ -
> 2044,11
> > +2044,11 @@ static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size,
> >  	sub_type_hdr->proximity_domain_from = proximity_domain_from;
> >  	sub_type_hdr->proximity_domain_to = proximity_domain_to;
> >  	sub_type_hdr->num_hops_xgmi =
> > -		amdgpu_amdkfd_get_xgmi_hops_count(kdev->kgd,
> peer_kdev->kgd);
> > +		amdgpu_amdkfd_get_xgmi_hops_count(kdev->adev,
> peer_kdev->adev);
> >  	sub_type_hdr->maximum_bandwidth_mbs =
> > -		amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev->kgd,
> peer_kdev->kgd, false);
> > +		amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev-
> >adev,
> > +peer_kdev->adev, false);
> >  	sub_type_hdr->minimum_bandwidth_mbs = sub_type_hdr-
> >maximum_bandwidth_mbs ?
> > -		amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev->kgd,
> NULL, true) : 0;
> > +		amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev-
> >adev, NULL, true) :
> > +0;
> >
> >  	return 0;
> >  }
> > @@ -2114,7 +2114,7 @@ static int kfd_create_vcrat_image_gpu(void
> *pcrat_image,
> >  	cu->flags |= CRAT_CU_FLAGS_GPU_PRESENT;
> >  	cu->proximity_domain = proximity_domain;
> >
> > -	amdgpu_amdkfd_get_cu_info(kdev->kgd, &cu_info);
> > +	amdgpu_amdkfd_get_cu_info(kdev->adev, &cu_info);
> >  	cu->num_simd_per_cu = cu_info.simd_per_cu;
> >  	cu->num_simd_cores = cu_info.simd_per_cu *
> cu_info.cu_active_number;
> >  	cu->max_waves_simd = cu_info.max_waves_per_simd; @@ -2145,7
> +2145,7
> > @@ static int kfd_create_vcrat_image_gpu(void *pcrat_image,
> >  	 * report the total FB size (public+private) as a single
> >  	 * private heap.
> >  	 */
> > -	amdgpu_amdkfd_get_local_mem_info(kdev->kgd,
> &local_mem_info);
> > +	amdgpu_amdkfd_get_local_mem_info(kdev->adev,
> &local_mem_info);
> >  	sub_type_hdr = (typeof(sub_type_hdr))((char *)sub_type_hdr +
> >  			sub_type_hdr->length);
> >
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > index a90ec8de213b..00c726123207 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > @@ -894,7 +894,7 @@ static int kfd_gws_init(struct kfd_dev *kfd)
> >  		|| (kfd->device_info->asic_family == CHIP_ALDEBARAN
> >  			&& kfd->mec2_fw_version >= 0x28))
> >  		ret = amdgpu_amdkfd_alloc_gws(kfd->adev,
> > -				amdgpu_amdkfd_get_num_gws(kfd->kgd),
> &kfd->gws);
> > +				amdgpu_amdkfd_get_num_gws(kfd->adev),
> &kfd->gws);
> >
> >  	return ret;
> >  }
> > @@ -911,11 +911,11 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
> >  	unsigned int size, map_process_packet_size;
> >
> >  	kfd->ddev = ddev;
> > -	kfd->mec_fw_version = amdgpu_amdkfd_get_fw_version(kfd-
> >kgd,
> > +	kfd->mec_fw_version = amdgpu_amdkfd_get_fw_version(kfd-
> >adev,
> >  			KGD_ENGINE_MEC1);
> > -	kfd->mec2_fw_version = amdgpu_amdkfd_get_fw_version(kfd-
> >kgd,
> > +	kfd->mec2_fw_version = amdgpu_amdkfd_get_fw_version(kfd-
> >adev,
> >  			KGD_ENGINE_MEC2);
> > -	kfd->sdma_fw_version = amdgpu_amdkfd_get_fw_version(kfd-
> >kgd,
> > +	kfd->sdma_fw_version = amdgpu_amdkfd_get_fw_version(kfd-
> >adev,
> >  			KGD_ENGINE_SDMA1);
> >  	kfd->shared_resources = *gpu_resources;
> >
> > @@ -996,9 +996,9 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
> >  		goto kfd_doorbell_error;
> >  	}
> >
> > -	kfd->hive_id = amdgpu_amdkfd_get_hive_id(kfd->kgd);
> > +	kfd->hive_id = amdgpu_amdkfd_get_hive_id(kfd->adev);
> >
> > -	kfd->noretry = amdgpu_amdkfd_get_noretry(kfd->kgd);
> > +	kfd->noretry = amdgpu_amdkfd_get_noretry(kfd->adev);
> >
> >  	if (kfd_interrupt_init(kfd)) {
> >  		dev_err(kfd_device, "Error initializing interrupts\n"); @@ -
> 1016,7
> > +1016,7 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
> >  	 */
> >  	if (kfd_gws_init(kfd)) {
> >  		dev_err(kfd_device, "Could not allocate %d gws\n",
> > -			amdgpu_amdkfd_get_num_gws(kfd->kgd));
> > +			amdgpu_amdkfd_get_num_gws(kfd->adev));
> >  		goto gws_error;
> >  	}
> >
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
> > index c021519af810..7b4118915bf6 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
> > @@ -100,7 +100,7 @@ void mqd_symmetrically_map_cu_mask(struct
> mqd_manager *mm,
> >  	struct kfd_cu_info cu_info;
> >  	uint32_t
> cu_per_sh[KFD_MAX_NUM_SE][KFD_MAX_NUM_SH_PER_SE] = {0};
> >  	int i, se, sh, cu;
> > -	amdgpu_amdkfd_get_cu_info(mm->dev->kgd, &cu_info);
> > +	amdgpu_amdkfd_get_cu_info(mm->dev->adev, &cu_info);
> >
> >  	if (cu_mask_count > cu_info.cu_active_number)
> >  		cu_mask_count = cu_info.cu_active_number; diff --git
> > a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
> > b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
> > index c8bd062fb954..499db2099775 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
> > @@ -969,7 +969,7 @@ struct kfd_topology_device
> > *kfd_topology_device_by_proximity_domain(
> >  struct kfd_topology_device *kfd_topology_device_by_id(uint32_t
> > gpu_id);  struct kfd_dev *kfd_device_by_id(uint32_t gpu_id);  struct
> > kfd_dev *kfd_device_by_pci_dev(const struct pci_dev *pdev); -struct
> > kfd_dev *kfd_device_by_kgd(const struct kgd_dev *kgd);
> > +struct kfd_dev *kfd_device_by_adev(const struct amdgpu_device
> *adev);
> >  int kfd_topology_enum_kfd_devices(uint8_t idx, struct kfd_dev
> > **kdev);  int kfd_numa_node_to_apic_id(int numa_node_id);  void
> > kfd_double_confirm_iommu_support(struct kfd_dev *gpu); diff --git
> > a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> > index 243dd1efcdbf..d8462bd3b4a6 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> > @@ -118,7 +118,7 @@ int pqm_set_gws(struct process_queue_manager
> *pqm, unsigned int qid,
> >  		return ret;
> >
> >  	pqn->q->gws = mem;
> > -	pdd->qpd.num_gws = gws ? amdgpu_amdkfd_get_num_gws(dev-
> >kgd) : 0;
> > +	pdd->qpd.num_gws = gws ? amdgpu_amdkfd_get_num_gws(dev-
> >adev) : 0;
> >
> >  	return pqn->q->device->dqm->ops.update_queue(pqn->q->device-
> >dqm,
> >  							pqn->q);
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> > index dd593ad0614a..31610b4a3e2e 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> > @@ -113,7 +113,7 @@ struct kfd_dev *kfd_device_by_pci_dev(const
> struct pci_dev *pdev)
> >  	return device;
> >  }
> >
> > -struct kfd_dev *kfd_device_by_kgd(const struct kgd_dev *kgd)
> > +struct kfd_dev *kfd_device_by_adev(const struct amdgpu_device
> *adev)
> >  {
> >  	struct kfd_topology_device *top_dev;
> >  	struct kfd_dev *device = NULL;
> > @@ -121,7 +121,7 @@ struct kfd_dev *kfd_device_by_kgd(const struct
> kgd_dev *kgd)
> >  	down_read(&topology_lock);
> >
> >  	list_for_each_entry(top_dev, &topology_device_list, list)
> > -		if (top_dev->gpu && top_dev->gpu->kgd == kgd) {
> > +		if (top_dev->gpu && top_dev->gpu->adev == adev) {
> >  			device = top_dev->gpu;
> >  			break;
> >  		}
> > @@ -531,7 +531,7 @@ static ssize_t node_show(struct kobject *kobj,
> struct attribute *attr,
> >  		sysfs_show_32bit_prop(buffer, offs, "sdma_fw_version",
> >  				      dev->gpu->sdma_fw_version);
> >  		sysfs_show_64bit_prop(buffer, offs, "unique_id",
> > -				      amdgpu_amdkfd_get_unique_id(dev-
> >gpu->kgd));
> > +				      amdgpu_amdkfd_get_unique_id(dev-
> >gpu->adev));
> >
> >  	}
> >
> > @@ -1106,7 +1106,7 @@ static uint32_t kfd_generate_gpu_id(struct
> kfd_dev *gpu)
> >  	if (!gpu)
> >  		return 0;
> >
> > -	amdgpu_amdkfd_get_local_mem_info(gpu->kgd,
> &local_mem_info);
> > +	amdgpu_amdkfd_get_local_mem_info(gpu->adev,
> &local_mem_info);
> >
> >  	local_mem_size = local_mem_info.local_mem_size_private +
> >  			local_mem_info.local_mem_size_public;
> > @@ -1189,7 +1189,7 @@ static void kfd_fill_mem_clk_max_info(struct
> kfd_topology_device *dev)
> >  	 * for APUs - If CRAT from ACPI reports more than one bank, then
> >  	 *	all the banks will report the same mem_clk_max information
> >  	 */
> > -	amdgpu_amdkfd_get_local_mem_info(dev->gpu->kgd,
> &local_mem_info);
> > +	amdgpu_amdkfd_get_local_mem_info(dev->gpu->adev,
> &local_mem_info);
> >
> >  	list_for_each_entry(mem, &dev->mem_props, list)
> >  		mem->mem_clk_max = local_mem_info.mem_clk_max;
> @@ -1372,7 +1372,7
> > @@ int kfd_topology_add_device(struct kfd_dev *gpu)
> >  	 * needed for the topology
> >  	 */
> >
> > -	amdgpu_amdkfd_get_cu_info(dev->gpu->kgd, &cu_info);
> > +	amdgpu_amdkfd_get_cu_info(dev->gpu->adev, &cu_info);
> >
> >  	strncpy(dev->node_props.name, gpu->device_info->asic_name,
> >  			KFD_TOPOLOGY_PUBLIC_NAME_SIZE);
> > @@ -1384,13 +1384,13 @@ int kfd_topology_add_device(struct kfd_dev
> *gpu)
> >  	dev->node_props.vendor_id = gpu->pdev->vendor;
> >  	dev->node_props.device_id = gpu->pdev->device;
> >  	dev->node_props.capability |=
> > -		((amdgpu_amdkfd_get_asic_rev_id(dev->gpu->kgd) <<
> > +		((amdgpu_amdkfd_get_asic_rev_id(dev->gpu->adev) <<
> >  			HSA_CAP_ASIC_REVISION_SHIFT) &
> >  			HSA_CAP_ASIC_REVISION_MASK);
> >  	dev->node_props.location_id = pci_dev_id(gpu->pdev);
> >  	dev->node_props.domain = pci_domain_nr(gpu->pdev->bus);
> >  	dev->node_props.max_engine_clk_fcompute =
> > -		amdgpu_amdkfd_get_max_engine_clock_in_mhz(dev-
> >gpu->kgd);
> > +		amdgpu_amdkfd_get_max_engine_clock_in_mhz(dev-
> >gpu->adev);
> >  	dev->node_props.max_engine_clk_ccompute =
> >  		cpufreq_quick_get_max(0) / 1000;
> >  	dev->node_props.drm_render_minor =
> > @@ -1404,7 +1404,7 @@ int kfd_topology_add_device(struct kfd_dev
> *gpu)
> >  				gpu->device_info-
> >num_sdma_queues_per_engine;
> >  	dev->node_props.num_gws = (dev->gpu->gws &&
> >  		dev->gpu->dqm->sched_policy !=
> KFD_SCHED_POLICY_NO_HWS) ?
> > -		amdgpu_amdkfd_get_num_gws(dev->gpu->kgd) : 0;
> > +		amdgpu_amdkfd_get_num_gws(dev->gpu->adev) : 0;
> >  	dev->node_props.num_cp_queues = get_cp_queues_num(dev-
> >gpu->dqm);
> >
> >  	kfd_fill_mem_clk_max_info(dev);


More information about the amd-gfx mailing list