[PATCH] drm/amdgpu: refuse to reserve io mem for split VRAM buffers

Alex Deucher alexdeucher at gmail.com
Thu Feb 16 23:02:54 UTC 2017


On Thu, Feb 16, 2017 at 5:55 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> When the fast blit path fails while attempting to move a buffer from RAM
> to VRAM, we fall back to a CPU-based memcpy that cannot handle split VRAM
> buffers. Instead of crashing, simply fail the buffer move.
>
> Ideally, we would teach TTM about split buffers so that the fallback still
> works in this case, but that is quite involved. So for now, apply the
> simplest possible fix.
>
> Fixes: 40361bb1704b ("drm/amdgpu: add VRAM manager v2")
> Signed-off-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

Possibly fixes this bug report?
https://bugzilla.kernel.org/show_bug.cgi?id=194579

Alex

> --
> I ran into this bug during testing. Unfortunately it does not fix the
> memory corruption bug that I mentioned elsewhere... oh well.
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 8d6a68f..f8b578d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -529,6 +529,9 @@ static int amdgpu_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_
>         case TTM_PL_TT:
>                 break;
>         case TTM_PL_VRAM:
> +               if (mem->start == AMDGPU_BO_INVALID_OFFSET)
> +                       return -EINVAL;
> +
>                 mem->bus.offset = mem->start << PAGE_SHIFT;
>                 /* check if it's visible */
>                 if ((mem->bus.offset + mem->bus.size) > adev->mc.visible_vram_size)
> --
> 2.9.3
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list