[PATCH 4/9] drm/amdgpu: Don't force BOs into visible VRAM if they can go to GTT instead
Christian König
deathsimple at vodafone.de
Sat Jun 24 18:09:56 UTC 2017
Am 23.06.2017 um 19:39 schrieb John Brooks:
> amdgpu_ttm_placement_init() callers that are using both VRAM and GTT as
> domains usually don't want visible VRAM as a busy placement.
>
> Signed-off-by: John Brooks <john at fastquake.com>
NAK to this as well. Some callers of amdgpu_ttm_placement_init() have
hard placement limitations that BOs *MUST* be in VRAM (VM page tables
and old UVD hardware).
So changing that here will just break those under memory pressure.
Regards,
Christian.
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index 751bc05..0ff555a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -138,7 +138,15 @@ static void amdgpu_ttm_placement_init(struct amdgpu_device *adev,
> if (flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)
> places[c].flags |= TTM_PL_FLAG_CONTIGUOUS;
>
> - busy_places[bc++] = places[c++];
> + /* Don't set limited visible VRAM as a busy placement if we can
> + * use GTT instead
> + */
> + if (!((flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) &&
> + adev->mc.visible_vram_size < adev->mc.real_vram_size &&
> + (domain & AMDGPU_GEM_DOMAIN_GTT)))
> + busy_places[bc++] = places[c];
> +
> + c++;
> }
>
> if (domain & AMDGPU_GEM_DOMAIN_GTT) {
More information about the amd-gfx
mailing list