[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