[PATCH] drm/amdkfd: replace trivial funcs with direct access

Felix Kuehling felix.kuehling at amd.com
Fri Nov 5 20:56:14 UTC 2021


On 2021-11-05 2:43 p.m., Graham Sider wrote:
> These get funcs simply return an adev field. Replace funcs/calls with
> direct field accesses instead.
>
> Signed-off-by: Graham Sider <Graham.Sider at amd.com>

Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>


> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    | 30 -------------------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h    |  6 ----
>   drivers/gpu/drm/amd/amdkfd/kfd_chardev.c      |  4 +--
>   drivers/gpu/drm/amd/amdkfd/kfd_device.c       |  8 ++---
>   .../amd/amdkfd/kfd_process_queue_manager.c    |  2 +-
>   drivers/gpu/drm/amd/amdkfd/kfd_topology.c     |  7 ++---
>   6 files changed, 10 insertions(+), 47 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> index 83f863dca7af..46cf48b3904a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> @@ -521,16 +521,6 @@ uint64_t amdgpu_amdkfd_get_vram_usage(struct amdgpu_device *adev)
>   	return amdgpu_vram_mgr_usage(vram_man);
>   }
>   
> -uint64_t amdgpu_amdkfd_get_hive_id(struct amdgpu_device *adev)
> -{
> -	return adev->gmc.xgmi.hive_id;
> -}
> -
> -uint64_t amdgpu_amdkfd_get_unique_id(struct amdgpu_device *adev)
> -{
> -	return adev->unique_id;
> -}
> -
>   uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct amdgpu_device *dst,
>   					  struct amdgpu_device *src)
>   {
> @@ -630,26 +620,6 @@ int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct amdgpu_device *adev, bool is_
>   	return (num_lanes_factor * gen_speed_mbits_factor)/BITS_PER_BYTE;
>   }
>   
> -uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr(struct amdgpu_device *adev)
> -{
> -	return adev->rmmio_remap.bus_addr;
> -}
> -
> -uint32_t amdgpu_amdkfd_get_num_gws(struct amdgpu_device *adev)
> -{
> -	return adev->gds.gws_size;
> -}
> -
> -uint32_t amdgpu_amdkfd_get_asic_rev_id(struct amdgpu_device *adev)
> -{
> -	return adev->rev_id;
> -}
> -
> -int amdgpu_amdkfd_get_noretry(struct amdgpu_device *adev)
> -{
> -	return adev->gmc.noretry;
> -}
> -
>   int amdgpu_amdkfd_submit_ib(struct amdgpu_device *adev,
>   				enum kgd_engine_type engine,
>   				uint32_t vmid, uint64_t gpu_addr,
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> index 5f658823a637..d00de575c541 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> @@ -224,12 +224,6 @@ int amdgpu_amdkfd_get_dmabuf_info(struct amdgpu_device *adev, int dma_buf_fd,
>   				  size_t buffer_size, uint32_t *metadata_size,
>   				  uint32_t *flags);
>   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,
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> index 8d5021e8c714..2e3d74f7fbfb 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> @@ -1313,7 +1313,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->adev);
> +		offset = dev->adev->rmmio_remap.bus_addr;
>   		if (!offset) {
>   			err = -ENOMEM;
>   			goto err_unlock;
> @@ -2066,7 +2066,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->adev);
> +	address = dev->adev->rmmio_remap.bus_addr;
>   
>   	vma->vm_flags |= VM_IO | VM_DONTCOPY | VM_DONTEXPAND | VM_NORESERVE |
>   				VM_DONTDUMP | VM_PFNMAP;
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> index c8aade17efef..b752dc36a2cd 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> @@ -892,7 +892,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->adev), &kfd->gws);
> +				kfd->adev->gds.gws_size, &kfd->gws);
>   
>   	return ret;
>   }
> @@ -994,9 +994,9 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
>   		goto kfd_doorbell_error;
>   	}
>   
> -	kfd->hive_id = amdgpu_amdkfd_get_hive_id(kfd->adev);
> +	kfd->hive_id = kfd->adev->gmc.xgmi.hive_id;
>   
> -	kfd->noretry = amdgpu_amdkfd_get_noretry(kfd->adev);
> +	kfd->noretry = kfd->adev->gmc.noretry;
>   
>   	if (kfd_interrupt_init(kfd)) {
>   		dev_err(kfd_device, "Error initializing interrupts\n");
> @@ -1014,7 +1014,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->adev));
> +			kfd->adev->gds.gws_size);
>   		goto gws_error;
>   	}
>   
> 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 62dc41cf2cb9..4f8464658daf 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->adev) : 0;
> +	pdd->qpd.num_gws = gws ? dev->adev->gds.gws_size : 0;
>   
>   	return pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm,
>   							pqn->q, NULL);
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> index 2e0006e22006..ae7c9944dc4a 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> @@ -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->adev));
> +				      dev->gpu->adev->unique_id);
>   
>   	}
>   
> @@ -1381,8 +1381,7 @@ 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->adev) <<
> -			HSA_CAP_ASIC_REVISION_SHIFT) &
> +		((dev->gpu->adev->rev_id << 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);
> @@ -1401,7 +1400,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->adev) : 0;
> +		dev->gpu->adev->gds.gws_size : 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