[igt-dev] [PATCH i-g-t] i915/gem_ccs: Change allocator type and enforce softpinning

Karolina Stolarek karolina.stolarek at intel.com
Fri Jan 20 07:42:35 UTC 2023


On 20.01.2023 08:25, Zbigniew Kempczyński wrote:
> For all subtests which uses simple allocator change them to reloc.
> There's nothing wrong with simple, but when it is freeing offset
> it might be used again in next allocation. From the execution point
> of view it leads to stalls. We don't want that here, especially in
> ctrl-surf-copy* subtests, where we join restoring ccs data for the
> surface and block-copy immediate after that.
> 
> Ensure we use softpinning for all subtests for the case where kernel
> still supports relocations and get_*_ahnd() helpers would return
> invalid allocator handle.
> 
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Karolina Stolarek <karolina.stolarek at intel.com>

Reviewed-by: Karolina Stolarek <karolina.stolarek at intel.com>

> ---
>   tests/i915/gem_ccs.c | 11 ++++-------
>   1 file changed, 4 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
> index ff28c6d889..e9d66ca95b 100644
> --- a/tests/i915/gem_ccs.c
> +++ b/tests/i915/gem_ccs.c
> @@ -437,9 +437,7 @@ static void block_copy(int i915,
>   	struct blt_copy_object *src, *mid, *dst;
>   	const uint32_t bpp = 32;
>   	uint64_t bb_size = 4096;
> -	uint64_t ahnd = intel_allocator_open_full(i915, ctx->id, 0, 0,
> -						  INTEL_ALLOCATOR_SIMPLE,
> -						  ALLOC_STRATEGY_LOW_TO_HIGH, 0);
> +	uint64_t ahnd = intel_allocator_open(i915, ctx->id, INTEL_ALLOCATOR_RELOC);
>   	uint32_t run_id = mid_tiling;
>   	uint32_t mid_region = region2, bb;
>   	uint32_t width = param.width, height = param.height;
> @@ -500,9 +498,8 @@ static void block_copy(int i915,
>   			cfg.engines[0].engine_instance = e->instance;
>   			surf_ctx = intel_ctx_create(i915, &cfg);
>   			surf_e.flags = 0;
> -			surf_ahnd = intel_allocator_open_full(i915, surf_ctx->id, 0, 0,
> -							      INTEL_ALLOCATOR_SIMPLE,
> -							      ALLOC_STRATEGY_LOW_TO_HIGH, 0);
> +			surf_ahnd = intel_allocator_open(i915, ctx->id,
> +							 INTEL_ALLOCATOR_RELOC);
>   		}
>   
>   		surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id,
> @@ -555,7 +552,7 @@ static void block_multicopy(int i915,
>   	struct blt_copy_object *src, *mid, *dst, *final;
>   	const uint32_t bpp = 32;
>   	uint64_t bb_size = 4096;
> -	uint64_t ahnd = get_reloc_ahnd(i915, ctx->id);
> +	uint64_t ahnd = intel_allocator_open(i915, ctx->id, INTEL_ALLOCATOR_RELOC);
>   	uint32_t run_id = mid_tiling;
>   	uint32_t mid_region = region2, bb;
>   	uint32_t width = param.width, height = param.height;


More information about the igt-dev mailing list