Re: [PATCH 1/3] drm/amdgpu: Relocate kgd2kfd function declaration
Am 14.12.18 um 16:22 schrieb Lin, Amber: Since amdkfd is merged into amdgpu module and amdgpu can access amdkfd directly, move declaration of kgd2kfd functions from kfd_priv.h to amdgpu_amdkfd.h Signed-off-by: Amber Lin Yes, please. If it's not committed yet Acked-by: Christian König for the series. --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 43 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 20 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 ++ drivers/gpu/drm/amd/amdkfd/kfd_module.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_priv.h| 22 drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 3 -- 7 files changed, 66 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c index 2dfaf15..358f690 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -619,4 +619,47 @@ struct kfd2kgd_calls *amdgpu_amdkfd_gfx_9_0_get_functions(void) { return NULL; } + +struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, + const struct kfd2kgd_calls *f2g) +{ + return NULL; +} + +bool kgd2kfd_device_init(struct kfd_dev *kfd, +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) +{ +} + +int kgd2kfd_resume(struct kfd_dev *kfd) +{ + 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) +{ +} #endif diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h index 70429f7..3214d31 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h @@ -33,7 +33,6 @@ #include "amdgpu_sync.h" #include "amdgpu_vm.h" -extern const struct kgd2kfd_calls *kgd2kfd; extern uint64_t amdgpu_amdkfd_total_mem_size; struct amdgpu_device; @@ -214,4 +213,23 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd, void amdgpu_amdkfd_gpuvm_init_mem_limits(void); void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo); +/* KGD2KFD callbacks */ +int kgd2kfd_init(unsigned interface_version, +const struct kgd2kfd_calls **g2f); +void kgd2kfd_exit(void); +struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, + const struct kfd2kgd_calls *f2g); +bool kgd2kfd_device_init(struct kfd_dev *kfd, +const struct kgd2kfd_shared_resources *gpu_resources); +void kgd2kfd_device_exit(struct kfd_dev *kfd); +void kgd2kfd_suspend(struct kfd_dev *kfd); +int kgd2kfd_resume(struct kfd_dev *kfd); +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); + #endif /* AMDGPU_AMDKFD_H_INCLUDED */ diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c index 574c118..3c7055e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c @@ -31,6 +31,7 @@ static const struct dma_fence_ops amdkfd_fence_ops; static atomic_t fence_seq = ATOMIC_INIT(0); +extern const struct kgd2kfd_calls *kgd2kfd; /* Eviction Fence * Fence helper functions to deal with KFD memory eviction. diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index be1ab43..3fc2618 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -44,6 +44,8 @@ */ #define AMDGPU_USERPTR_RESTORE_DELAY_MS 1 +extern const struct kgd2kfd_calls *kgd2kfd; + /* Impose limit on how much memory KFD can use */ static struct { uint64_t max_system_mem_limit; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c index 8018163..030b39d 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c @@ -23,6 +23,7 @@ #include #include #include "kfd_priv.h" +#include "amdgpu_amdkfd.h" static const struct kgd2kfd_calls kgd2kfd = { .exit = kgd2kfd_exit, @@ -104,7 +105,6 @@ int kgd2kfd_init(unsigned int interface_vers
Re: [PATCH 1/3] drm/amdgpu: Relocate kgd2kfd function declaration
The series is Reviewed-by: Felix Kuehling On 2018-12-14 10:22 a.m., Lin, Amber wrote: > Since amdkfd is merged into amdgpu module and amdgpu can access amdkfd > directly, move declaration of kgd2kfd functions from kfd_priv.h to > amdgpu_amdkfd.h > > Signed-off-by: Amber Lin > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 43 > > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 20 ++- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 ++ > drivers/gpu/drm/amd/amdkfd/kfd_module.c | 2 +- > drivers/gpu/drm/amd/amdkfd/kfd_priv.h| 22 > drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 3 -- > 7 files changed, 66 insertions(+), 27 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > index 2dfaf15..358f690 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > @@ -619,4 +619,47 @@ struct kfd2kgd_calls > *amdgpu_amdkfd_gfx_9_0_get_functions(void) > { > return NULL; > } > + > +struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, > + const struct kfd2kgd_calls *f2g) > +{ > + return NULL; > +} > + > +bool kgd2kfd_device_init(struct kfd_dev *kfd, > + 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) > +{ > +} > + > +int kgd2kfd_resume(struct kfd_dev *kfd) > +{ > + 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) > +{ > +} > #endif > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > index 70429f7..3214d31 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > @@ -33,7 +33,6 @@ > #include "amdgpu_sync.h" > #include "amdgpu_vm.h" > > -extern const struct kgd2kfd_calls *kgd2kfd; > extern uint64_t amdgpu_amdkfd_total_mem_size; > > struct amdgpu_device; > @@ -214,4 +213,23 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev > *kgd, > void amdgpu_amdkfd_gpuvm_init_mem_limits(void); > void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo); > > +/* KGD2KFD callbacks */ > +int kgd2kfd_init(unsigned interface_version, > + const struct kgd2kfd_calls **g2f); > +void kgd2kfd_exit(void); > +struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, > + const struct kfd2kgd_calls *f2g); > +bool kgd2kfd_device_init(struct kfd_dev *kfd, > + const struct kgd2kfd_shared_resources *gpu_resources); > +void kgd2kfd_device_exit(struct kfd_dev *kfd); > +void kgd2kfd_suspend(struct kfd_dev *kfd); > +int kgd2kfd_resume(struct kfd_dev *kfd); > +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); > + > #endif /* AMDGPU_AMDKFD_H_INCLUDED */ > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c > index 574c118..3c7055e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c > @@ -31,6 +31,7 @@ > > static const struct dma_fence_ops amdkfd_fence_ops; > static atomic_t fence_seq = ATOMIC_INIT(0); > +extern const struct kgd2kfd_calls *kgd2kfd; > > /* Eviction Fence > * Fence helper functions to deal with KFD memory eviction. > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c > index be1ab43..3fc2618 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c > @@ -44,6 +44,8 @@ > */ > #define AMDGPU_USERPTR_RESTORE_DELAY_MS 1 > > +extern const struct kgd2kfd_calls *kgd2kfd; > + > /* Impose limit on how much memory KFD can use */ > static struct { > uint64_t max_system_mem_limit; > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c > b/drivers/gpu/drm/amd/amdkfd/kfd_module.c > index 8018163..030b39d 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c > @@ -23,6 +23,7 @@ > #include > #include > #include "kfd_priv.h" > +#in