Am 2021-01-27 um 5:14 a.m. schrieb Lang Yu: > Move all the dummy functions in amdgpu_amdkfd.c to > amdgpu_amdkfd.h as inline functions. > > Signed-off-by: Lang Yu <Lang.Yu@xxxxxxx> > Suggested-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> Just a some nit-picking inline, other than that the patch is Reviewed-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 87 ------------ > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 151 ++++++++++++++++++--- > 2 files changed, 130 insertions(+), 108 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > index db96d69eb45e..c5343a5eecbe 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > @@ -47,12 +47,8 @@ int amdgpu_amdkfd_init(void) > amdgpu_amdkfd_total_mem_size = si.totalram - si.totalhigh; > amdgpu_amdkfd_total_mem_size *= si.mem_unit; > > -#ifdef CONFIG_HSA_AMD > ret = kgd2kfd_init(); > amdgpu_amdkfd_gpuvm_init_mem_limits(); > -#else > - ret = -ENOENT; > -#endif > kfd_initialized = !ret; > > return ret; > @@ -696,86 +692,3 @@ bool amdgpu_amdkfd_have_atomics_support(struct kgd_dev *kgd) > > return adev->have_atomics_support; > } > - > -#ifndef CONFIG_HSA_AMD > -bool amdkfd_fence_check_mm(struct dma_fence *f, struct mm_struct *mm) > -{ > - return false; > -} > - > -void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo) > -{ > -} > - > -int amdgpu_amdkfd_remove_fence_on_pt_pd_bos(struct amdgpu_bo *bo) > -{ > - return 0; > -} > - > -void amdgpu_amdkfd_gpuvm_destroy_cb(struct amdgpu_device *adev, > - struct amdgpu_vm *vm) > -{ > -} > - > -struct amdgpu_amdkfd_fence *to_amdgpu_amdkfd_fence(struct dma_fence *f) > -{ > - return NULL; > -} > - > -int amdgpu_amdkfd_evict_userptr(struct kgd_mem *mem, struct mm_struct *mm) > -{ > - return 0; > -} > - > -struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, > - unsigned int asic_type, bool vf) > -{ > - return NULL; > -} > - > -bool kgd2kfd_device_init(struct kfd_dev *kfd, > - struct drm_device *ddev, > - const struct kgd2kfd_shared_resources *gpu_resources) > -{ > - return false; > -} > - > -void kgd2kfd_device_exit(struct kfd_dev *kfd) > -{ > -} > - > -void kgd2kfd_exit(void) > -{ > -} > - > -void kgd2kfd_suspend(struct kfd_dev *kfd, bool run_pm) > -{ > -} > - > -int kgd2kfd_resume(struct kfd_dev *kfd, bool run_pm) > -{ > - return 0; > -} > - > -int kgd2kfd_pre_reset(struct kfd_dev *kfd) > -{ > - return 0; > -} > - > -int kgd2kfd_post_reset(struct kfd_dev *kfd) > -{ > - return 0; > -} > - > -void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry) > -{ > -} > - > -void kgd2kfd_set_sram_ecc_flag(struct kfd_dev *kfd) > -{ > -} > - > -void kgd2kfd_smi_event_throttle(struct kfd_dev *kfd, uint32_t throttle_bitmask) > -{ > -} > -#endif > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > index bc9f0e42e0a2..c3a51c0d54e9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > @@ -94,11 +94,6 @@ enum kgd_engine_type { > KGD_ENGINE_MAX > }; > > -struct amdgpu_amdkfd_fence *amdgpu_amdkfd_fence_create(u64 context, > - struct mm_struct *mm); > -bool amdkfd_fence_check_mm(struct dma_fence *f, struct mm_struct *mm); > -struct amdgpu_amdkfd_fence *to_amdgpu_amdkfd_fence(struct dma_fence *f); > -int amdgpu_amdkfd_remove_fence_on_pt_pd_bos(struct amdgpu_bo *bo); > > struct amdkfd_process_info { > /* List head of all VMs that belong to a KFD process */ > @@ -132,8 +127,6 @@ void amdgpu_amdkfd_interrupt(struct amdgpu_device *adev, > void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev); > void amdgpu_amdkfd_device_init(struct amdgpu_device *adev); > void amdgpu_amdkfd_device_fini(struct amdgpu_device *adev); > - > -int amdgpu_amdkfd_evict_userptr(struct kgd_mem *mem, struct mm_struct *mm); > int amdgpu_amdkfd_submit_ib(struct kgd_dev *kgd, enum kgd_engine_type engine, > uint32_t vmid, uint64_t gpu_addr, > uint32_t *ib_cmd, uint32_t ib_len); > @@ -153,6 +146,38 @@ void amdgpu_amdkfd_gpu_reset(struct kgd_dev *kgd); > int amdgpu_queue_mask_bit_to_set_resource_bit(struct amdgpu_device *adev, > int queue_bit); > > +struct amdgpu_amdkfd_fence *amdgpu_amdkfd_fence_create(u64 context, > + struct mm_struct *mm); > +#if IS_ENABLED(CONFIG_HSA_AMD) > +bool amdkfd_fence_check_mm(struct dma_fence *f, struct mm_struct *mm); > +struct amdgpu_amdkfd_fence *to_amdgpu_amdkfd_fence(struct dma_fence *f); > +int amdgpu_amdkfd_remove_fence_on_pt_pd_bos(struct amdgpu_bo *bo); > +int amdgpu_amdkfd_evict_userptr(struct kgd_mem *mem, struct mm_struct *mm); > +#else > +static inline > +bool amdkfd_fence_check_mm(struct dma_fence *f, struct mm_struct *mm) > +{ > + return false; > +} > + > +static inline > +struct amdgpu_amdkfd_fence *to_amdgpu_amdkfd_fence(struct dma_fence *f) > +{ > + return NULL; > +} > + > +static inline > +int amdgpu_amdkfd_remove_fence_on_pt_pd_bos(struct amdgpu_bo *bo) > +{ > + return 0; > +} > + > +static inline > +int amdgpu_amdkfd_evict_userptr(struct kgd_mem *mem, struct mm_struct *mm) > +{ > + return 0; > +} > +#endif > /* Shared API */ > int amdgpu_amdkfd_alloc_gtt_mem(struct kgd_dev *kgd, size_t size, > void **mem_obj, uint64_t *gpu_addr, > @@ -215,8 +240,6 @@ int amdgpu_amdkfd_gpuvm_acquire_process_vm(struct kgd_dev *kgd, > struct file *filp, unsigned int pasid, > void **vm, void **process_info, > struct dma_fence **ef); > -void amdgpu_amdkfd_gpuvm_destroy_cb(struct amdgpu_device *adev, > - struct amdgpu_vm *vm); > void amdgpu_amdkfd_gpuvm_destroy_process_vm(struct kgd_dev *kgd, void *vm); > void amdgpu_amdkfd_gpuvm_release_process_vm(struct kgd_dev *kgd, void *vm); > uint64_t amdgpu_amdkfd_gpuvm_get_process_page_dir(void *vm); > @@ -236,23 +259,46 @@ int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct kgd_dev *kgd, > struct kgd_mem *mem, void **kptr, uint64_t *size); > int amdgpu_amdkfd_gpuvm_restore_process_bos(void *process_info, > struct dma_fence **ef); > - > int amdgpu_amdkfd_gpuvm_get_vm_fault_info(struct kgd_dev *kgd, > struct kfd_vm_fault_info *info); > - > int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd, > struct dma_buf *dmabuf, > uint64_t va, void *vm, > struct kgd_mem **mem, uint64_t *size, > uint64_t *mmap_offset); > - > -void amdgpu_amdkfd_gpuvm_init_mem_limits(void); > -void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo); > - > int amdgpu_amdkfd_get_tile_config(struct kgd_dev *kgd, > struct tile_config *config); > - > +#if IS_ENABLED(CONFIG_HSA_AMD) > +void amdgpu_amdkfd_gpuvm_init_mem_limits(void); > +void amdgpu_amdkfd_gpuvm_destroy_cb(struct amdgpu_device *adev, > + struct amdgpu_vm *vm); > +void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo); > +#else > +static inline > +void amdgpu_amdkfd_gpuvm_init_mem_limits(void) > +{ > + return; The indentation is incorrect. But why do you need this return statement at all? The same question for the other return statements you added in void functions. Regards, Felix > +} > + > +static inline > +void amdgpu_amdkfd_gpuvm_destroy_cb(struct amdgpu_device *adev, > + struct amdgpu_vm *vm) > +{ > + return; > +} > + > +static inline > +void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo) > +{ > + return; > +} > +#endif > /* KGD2KFD callbacks */ > +int kgd2kfd_quiesce_mm(struct mm_struct *mm); > +int kgd2kfd_resume_mm(struct mm_struct *mm); > +int kgd2kfd_schedule_evict_and_restore_process(struct mm_struct *mm, > + struct dma_fence *fence); > +#if IS_ENABLED(CONFIG_HSA_AMD) > int kgd2kfd_init(void); > void kgd2kfd_exit(void); > struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, > @@ -266,11 +312,74 @@ int kgd2kfd_resume(struct kfd_dev *kfd, bool run_pm); > int kgd2kfd_pre_reset(struct kfd_dev *kfd); > int kgd2kfd_post_reset(struct kfd_dev *kfd); > void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry); > -int kgd2kfd_quiesce_mm(struct mm_struct *mm); > -int kgd2kfd_resume_mm(struct mm_struct *mm); > -int kgd2kfd_schedule_evict_and_restore_process(struct mm_struct *mm, > - struct dma_fence *fence); > void kgd2kfd_set_sram_ecc_flag(struct kfd_dev *kfd); > void kgd2kfd_smi_event_throttle(struct kfd_dev *kfd, uint32_t throttle_bitmask); > - > +#else > +static inline int kgd2kfd_init(void) > +{ > + return -ENOENT; > +} > + > +static inline void kgd2kfd_exit(void) > +{ > + return; > +} > + > +static inline > +struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, > + unsigned int asic_type, bool vf) > +{ > + return NULL; > +} > + > +static inline > +bool kgd2kfd_device_init(struct kfd_dev *kfd, struct drm_device *ddev, > + const struct kgd2kfd_shared_resources *gpu_resources) > +{ > + return false; > +} > + > +static inline void kgd2kfd_device_exit(struct kfd_dev *kfd) > +{ > + return; > +} > + > +static inline void kgd2kfd_suspend(struct kfd_dev *kfd, bool run_pm) > +{ > + return; > +} > + > +static inline int kgd2kfd_resume(struct kfd_dev *kfd, bool run_pm) > +{ > + return 0; > +} > + > +static inline int kgd2kfd_pre_reset(struct kfd_dev *kfd) > +{ > + return 0; > +} > + > +static inline int kgd2kfd_post_reset(struct kfd_dev *kfd) > +{ > + return 0; > +} > + > +static inline > +void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry) > +{ > + return; > +} > + > +static inline > +void kgd2kfd_set_sram_ecc_flag(struct kfd_dev *kfd) > +{ > + return; > +} > + > +static inline > +void kgd2kfd_smi_event_throttle(struct kfd_dev *kfd, uint32_t throttle_bitmask) > +{ > + return; > +} > +#endif > #endif /* AMDGPU_AMDKFD_H_INCLUDED */ _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx