Re: [PATCH 4/7] drm/amdgpu: initialize GDS/GWS/OA domains even when they are zero sized

2018-09-17 Thread Christian König

Am 14.09.2018 um 22:14 schrieb Alex Deucher:

On Fri, Sep 14, 2018 at 3:12 PM Christian König
 wrote:

Stops crashing on SI.

Signed-off-by: Christian König 

Presumably ttm allows this?


Yes, actually explicitly tested this.

Christian.


Acked-by: Alex Deucher 


---
  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 48 +
  1 file changed, 18 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 3e450159fe1f..710e7751c567 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1843,34 +1843,25 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
  (unsigned)(gtt_size / (1024 * 1024)));

 /* Initialize various on-chip memory pools */
-   /* GDS Memory */
-   if (adev->gds.mem.total_size) {
-   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GDS,
-  adev->gds.mem.total_size);
-   if (r) {
-   DRM_ERROR("Failed initializing GDS heap.\n");
-   return r;
-   }
+   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GDS,
+  adev->gds.mem.total_size);
+   if (r) {
+   DRM_ERROR("Failed initializing GDS heap.\n");
+   return r;
 }

-   /* GWS */
-   if (adev->gds.gws.total_size) {
-   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GWS,
-  adev->gds.gws.total_size);
-   if (r) {
-   DRM_ERROR("Failed initializing gws heap.\n");
-   return r;
-   }
+   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GWS,
+  adev->gds.gws.total_size);
+   if (r) {
+   DRM_ERROR("Failed initializing gws heap.\n");
+   return r;
 }

-   /* OA */
-   if (adev->gds.oa.total_size) {
-   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_OA,
-  adev->gds.oa.total_size);
-   if (r) {
-   DRM_ERROR("Failed initializing oa heap.\n");
-   return r;
-   }
+   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_OA,
+  adev->gds.oa.total_size);
+   if (r) {
+   DRM_ERROR("Failed initializing oa heap.\n");
+   return r;
 }

 /* Register debugfs entries for amdgpu_ttm */
@@ -1907,12 +1898,9 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)

 ttm_bo_clean_mm(>mman.bdev, TTM_PL_VRAM);
 ttm_bo_clean_mm(>mman.bdev, TTM_PL_TT);
-   if (adev->gds.mem.total_size)
-   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GDS);
-   if (adev->gds.gws.total_size)
-   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GWS);
-   if (adev->gds.oa.total_size)
-   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_OA);
+   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GDS);
+   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GWS);
+   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_OA);
 ttm_bo_device_release(>mman.bdev);
 amdgpu_ttm_global_fini(adev);
 adev->mman.initialized = false;
--
2.14.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


Re: [PATCH 4/7] drm/amdgpu: initialize GDS/GWS/OA domains even when they are zero sized

2018-09-14 Thread Alex Deucher
On Fri, Sep 14, 2018 at 3:12 PM Christian König
 wrote:
>
> Stops crashing on SI.
>
> Signed-off-by: Christian König 

Presumably ttm allows this?
Acked-by: Alex Deucher 

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 48 
> +
>  1 file changed, 18 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 3e450159fe1f..710e7751c567 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1843,34 +1843,25 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
>  (unsigned)(gtt_size / (1024 * 1024)));
>
> /* Initialize various on-chip memory pools */
> -   /* GDS Memory */
> -   if (adev->gds.mem.total_size) {
> -   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GDS,
> -  adev->gds.mem.total_size);
> -   if (r) {
> -   DRM_ERROR("Failed initializing GDS heap.\n");
> -   return r;
> -   }
> +   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GDS,
> +  adev->gds.mem.total_size);
> +   if (r) {
> +   DRM_ERROR("Failed initializing GDS heap.\n");
> +   return r;
> }
>
> -   /* GWS */
> -   if (adev->gds.gws.total_size) {
> -   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GWS,
> -  adev->gds.gws.total_size);
> -   if (r) {
> -   DRM_ERROR("Failed initializing gws heap.\n");
> -   return r;
> -   }
> +   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GWS,
> +  adev->gds.gws.total_size);
> +   if (r) {
> +   DRM_ERROR("Failed initializing gws heap.\n");
> +   return r;
> }
>
> -   /* OA */
> -   if (adev->gds.oa.total_size) {
> -   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_OA,
> -  adev->gds.oa.total_size);
> -   if (r) {
> -   DRM_ERROR("Failed initializing oa heap.\n");
> -   return r;
> -   }
> +   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_OA,
> +  adev->gds.oa.total_size);
> +   if (r) {
> +   DRM_ERROR("Failed initializing oa heap.\n");
> +   return r;
> }
>
> /* Register debugfs entries for amdgpu_ttm */
> @@ -1907,12 +1898,9 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
>
> ttm_bo_clean_mm(>mman.bdev, TTM_PL_VRAM);
> ttm_bo_clean_mm(>mman.bdev, TTM_PL_TT);
> -   if (adev->gds.mem.total_size)
> -   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GDS);
> -   if (adev->gds.gws.total_size)
> -   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GWS);
> -   if (adev->gds.oa.total_size)
> -   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_OA);
> +   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GDS);
> +   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GWS);
> +   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_OA);
> ttm_bo_device_release(>mman.bdev);
> amdgpu_ttm_global_fini(adev);
> adev->mman.initialized = false;
> --
> 2.14.1
>
> ___
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


[PATCH 4/7] drm/amdgpu: initialize GDS/GWS/OA domains even when they are zero sized

2018-09-14 Thread Christian König
Stops crashing on SI.

Signed-off-by: Christian König 
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 48 +
 1 file changed, 18 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 3e450159fe1f..710e7751c567 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1843,34 +1843,25 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
 (unsigned)(gtt_size / (1024 * 1024)));
 
/* Initialize various on-chip memory pools */
-   /* GDS Memory */
-   if (adev->gds.mem.total_size) {
-   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GDS,
-  adev->gds.mem.total_size);
-   if (r) {
-   DRM_ERROR("Failed initializing GDS heap.\n");
-   return r;
-   }
+   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GDS,
+  adev->gds.mem.total_size);
+   if (r) {
+   DRM_ERROR("Failed initializing GDS heap.\n");
+   return r;
}
 
-   /* GWS */
-   if (adev->gds.gws.total_size) {
-   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GWS,
-  adev->gds.gws.total_size);
-   if (r) {
-   DRM_ERROR("Failed initializing gws heap.\n");
-   return r;
-   }
+   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_GWS,
+  adev->gds.gws.total_size);
+   if (r) {
+   DRM_ERROR("Failed initializing gws heap.\n");
+   return r;
}
 
-   /* OA */
-   if (adev->gds.oa.total_size) {
-   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_OA,
-  adev->gds.oa.total_size);
-   if (r) {
-   DRM_ERROR("Failed initializing oa heap.\n");
-   return r;
-   }
+   r = ttm_bo_init_mm(>mman.bdev, AMDGPU_PL_OA,
+  adev->gds.oa.total_size);
+   if (r) {
+   DRM_ERROR("Failed initializing oa heap.\n");
+   return r;
}
 
/* Register debugfs entries for amdgpu_ttm */
@@ -1907,12 +1898,9 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
 
ttm_bo_clean_mm(>mman.bdev, TTM_PL_VRAM);
ttm_bo_clean_mm(>mman.bdev, TTM_PL_TT);
-   if (adev->gds.mem.total_size)
-   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GDS);
-   if (adev->gds.gws.total_size)
-   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GWS);
-   if (adev->gds.oa.total_size)
-   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_OA);
+   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GDS);
+   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_GWS);
+   ttm_bo_clean_mm(>mman.bdev, AMDGPU_PL_OA);
ttm_bo_device_release(>mman.bdev);
amdgpu_ttm_global_fini(adev);
adev->mman.initialized = false;
-- 
2.14.1

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx