amd-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error
@ 2021-09-21 18:53 Philip Yang
  2021-09-21 18:53 ` [PATCH v2 2/2] drm/amdkfd: fix svm_migrate_fini warning Philip Yang
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Philip Yang @ 2021-09-21 18:53 UTC (permalink / raw)
  To: amd-gfx; +Cc: Philip Yang

If svm migration init failed to create pgmap for device memory, set
pgmap type to 0 to disable device SVM support capability.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
index dab290a4d19d..165e0ebb619d 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
@@ -894,6 +894,9 @@ int svm_migrate_init(struct amdgpu_device *adev)
 	r = devm_memremap_pages(adev->dev, pgmap);
 	if (IS_ERR(r)) {
 		pr_err("failed to register HMM device memory\n");
+
+		/* Disable SVM support capability */
+		pgmap->type = 0;
 		devm_release_mem_region(adev->dev, res->start,
 					res->end - res->start + 1);
 		return PTR_ERR(r);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] drm/amdkfd: fix svm_migrate_fini warning
  2021-09-21 18:53 [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error Philip Yang
@ 2021-09-21 18:53 ` Philip Yang
  2021-09-21 18:58 ` [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error Andrey Grodzovsky
  2021-09-21 19:24 ` Felix Kuehling
  2 siblings, 0 replies; 4+ messages in thread
From: Philip Yang @ 2021-09-21 18:53 UTC (permalink / raw)
  To: amd-gfx; +Cc: Philip Yang

Device manager releases device-specific resources when a driver
disconnects from a device, devm_memunmap_pages and
devm_release_mem_region calls in svm_migrate_fini are redundant.

It causes below warning trace after patch "drm/amdgpu: Split
amdgpu_device_fini into early and late", so remove function
svm_migrate_fini.

BUG: https://gitlab.freedesktop.org/drm/amd/-/issues/1718

WARNING: CPU: 1 PID: 3646 at drivers/base/devres.c:795
devm_release_action+0x51/0x60
Call Trace:
    ? memunmap_pages+0x360/0x360
    svm_migrate_fini+0x2d/0x60 [amdgpu]
    kgd2kfd_device_exit+0x23/0xa0 [amdgpu]
    amdgpu_amdkfd_device_fini_sw+0x1d/0x30 [amdgpu]
    amdgpu_device_fini_sw+0x45/0x290 [amdgpu]
    amdgpu_driver_release_kms+0x12/0x30 [amdgpu]
    drm_dev_release+0x20/0x40 [drm]
    release_nodes+0x196/0x1e0
    device_release_driver_internal+0x104/0x1d0
    driver_detach+0x47/0x90
    bus_remove_driver+0x7a/0xd0
    pci_unregister_driver+0x3d/0x90
    amdgpu_exit+0x11/0x20 [amdgpu]

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_device.c  |  1 -
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 13 ++++---------
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.h |  5 -----
 3 files changed, 4 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
index 98d1b3ab3a46..c2a4d920da40 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -971,7 +971,6 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
 void kgd2kfd_device_exit(struct kfd_dev *kfd)
 {
 	if (kfd->init_complete) {
-		svm_migrate_fini((struct amdgpu_device *)kfd->kgd);
 		device_queue_manager_uninit(kfd->dqm);
 		kfd_interrupt_exit(kfd);
 		kfd_topology_remove_device(kfd);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
index 165e0ebb619d..4a16e3c257b9 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
@@ -891,6 +891,10 @@ int svm_migrate_init(struct amdgpu_device *adev)
 	pgmap->ops = &svm_migrate_pgmap_ops;
 	pgmap->owner = SVM_ADEV_PGMAP_OWNER(adev);
 	pgmap->flags = MIGRATE_VMA_SELECT_DEVICE_PRIVATE;
+
+	/* Device manager releases device-specific resources, memory region and
+	 * pgmap when driver disconnects from device.
+	 */
 	r = devm_memremap_pages(adev->dev, pgmap);
 	if (IS_ERR(r)) {
 		pr_err("failed to register HMM device memory\n");
@@ -911,12 +915,3 @@ int svm_migrate_init(struct amdgpu_device *adev)
 
 	return 0;
 }
-
-void svm_migrate_fini(struct amdgpu_device *adev)
-{
-	struct dev_pagemap *pgmap = &adev->kfd.dev->pgmap;
-
-	devm_memunmap_pages(adev->dev, pgmap);
-	devm_release_mem_region(adev->dev, pgmap->range.start,
-				pgmap->range.end - pgmap->range.start + 1);
-}
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.h b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.h
index 0de76b5d4973..2f5b3394c9ed 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.h
@@ -47,7 +47,6 @@ unsigned long
 svm_migrate_addr_to_pfn(struct amdgpu_device *adev, unsigned long addr);
 
 int svm_migrate_init(struct amdgpu_device *adev);
-void svm_migrate_fini(struct amdgpu_device *adev);
 
 #else
 
@@ -55,10 +54,6 @@ static inline int svm_migrate_init(struct amdgpu_device *adev)
 {
 	return 0;
 }
-static inline void svm_migrate_fini(struct amdgpu_device *adev)
-{
-	/* empty */
-}
 
 #endif /* IS_ENABLED(CONFIG_HSA_AMD_SVM) */
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error
  2021-09-21 18:53 [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error Philip Yang
  2021-09-21 18:53 ` [PATCH v2 2/2] drm/amdkfd: fix svm_migrate_fini warning Philip Yang
@ 2021-09-21 18:58 ` Andrey Grodzovsky
  2021-09-21 19:24 ` Felix Kuehling
  2 siblings, 0 replies; 4+ messages in thread
From: Andrey Grodzovsky @ 2021-09-21 18:58 UTC (permalink / raw)
  To: Philip Yang, amd-gfx

Series is Acked-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>

Andrey

On 2021-09-21 2:53 p.m., Philip Yang wrote:
> If svm migration init failed to create pgmap for device memory, set
> pgmap type to 0 to disable device SVM support capability.
>
> Signed-off-by: Philip Yang <Philip.Yang@amd.com>
> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> index dab290a4d19d..165e0ebb619d 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> @@ -894,6 +894,9 @@ int svm_migrate_init(struct amdgpu_device *adev)
>   	r = devm_memremap_pages(adev->dev, pgmap);
>   	if (IS_ERR(r)) {
>   		pr_err("failed to register HMM device memory\n");
> +
> +		/* Disable SVM support capability */
> +		pgmap->type = 0;
>   		devm_release_mem_region(adev->dev, res->start,
>   					res->end - res->start + 1);
>   		return PTR_ERR(r);

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error
  2021-09-21 18:53 [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error Philip Yang
  2021-09-21 18:53 ` [PATCH v2 2/2] drm/amdkfd: fix svm_migrate_fini warning Philip Yang
  2021-09-21 18:58 ` [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error Andrey Grodzovsky
@ 2021-09-21 19:24 ` Felix Kuehling
  2 siblings, 0 replies; 4+ messages in thread
From: Felix Kuehling @ 2021-09-21 19:24 UTC (permalink / raw)
  To: Philip Yang, amd-gfx

On 2021-09-21 2:53 p.m., Philip Yang wrote:
> If svm migration init failed to create pgmap for device memory, set
> pgmap type to 0 to disable device SVM support capability.
>
> Signed-off-by: Philip Yang <Philip.Yang@amd.com>

The series is

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


> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> index dab290a4d19d..165e0ebb619d 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> @@ -894,6 +894,9 @@ int svm_migrate_init(struct amdgpu_device *adev)
>   	r = devm_memremap_pages(adev->dev, pgmap);
>   	if (IS_ERR(r)) {
>   		pr_err("failed to register HMM device memory\n");
> +
> +		/* Disable SVM support capability */
> +		pgmap->type = 0;
>   		devm_release_mem_region(adev->dev, res->start,
>   					res->end - res->start + 1);
>   		return PTR_ERR(r);

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-21 19:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-21 18:53 [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error Philip Yang
2021-09-21 18:53 ` [PATCH v2 2/2] drm/amdkfd: fix svm_migrate_fini warning Philip Yang
2021-09-21 18:58 ` [PATCH v2 1/2] drm/amdkfd: handle svm migrate init error Andrey Grodzovsky
2021-09-21 19:24 ` Felix Kuehling

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).