[Mesa-dev] [PATCH 3/3] winsys/amdgpu: use optimal VM alignment for CPU allocations

Christian König ckoenig.leichtzumerken at gmail.com
Tue Nov 27 09:44:37 UTC 2018


Am 27.11.18 um 00:02 schrieb Marek Olšák:
> From: Marek Olšák <marek.olsak at amd.com>
>
> ---
>   src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
> index 7b239695872..a9170a2bc69 100644
> --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
> +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
> @@ -1541,22 +1541,24 @@ static struct pb_buffer *amdgpu_bo_from_ptr(struct radeon_winsys *rws,
>   
>       bo = CALLOC_STRUCT(amdgpu_winsys_bo);
>       if (!bo)
>           return NULL;
>   
>       if (amdgpu_create_bo_from_user_mem(ws->dev, pointer,
>                                          aligned_size, &buf_handle))
>           goto error;
>   
>       if (amdgpu_va_range_alloc(ws->dev, amdgpu_gpu_va_range_general,
> -                              aligned_size, 1 << 12, 0, &va, &va_handle,
> -			      AMDGPU_VA_RANGE_HIGH))
> +                              aligned_size,
> +                              amdgpu_get_optimal_vm_alignment(ws, aligned_size,
> +                                                              ws->info.gart_page_size),
> +                              0, &va, &va_handle, AMDGPU_VA_RANGE_HIGH))

For userptrs the VA alignment is most likely irrelevant because they are 
composed out of 4k pages anyway. On the other hand it shouldn't hurt to 
handle them the same way.

Feel free to add an Acked-by: Christian König <christian.koenig at amd.com> 
to the series.

Christian.

>           goto error_va_alloc;
>   
>       if (amdgpu_bo_va_op(buf_handle, 0, aligned_size, va, 0, AMDGPU_VA_OP_MAP))
>           goto error_va_map;
>   
>       /* Initialize it. */
>       pipe_reference_init(&bo->base.reference, 1);
>       bo->bo = buf_handle;
>       bo->base.alignment = 0;
>       bo->base.size = size;



More information about the mesa-dev mailing list