Re: [PATCH 4/7] drm/amdgpu: initialize GDS/GWS/OA domains even when they are zero sized
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
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
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