[Intel-xe] [PATCH 5/6] drm/xe/bo: Evict VRAM to TT rather than to system

Matthew Brost matthew.brost at intel.com
Fri Jun 16 20:47:56 UTC 2023


On Fri, Jun 16, 2023 at 11:55:03AM +0200, Thomas Hellström wrote:
> The main difference is that we don't bounce and sync on eviction, allowing
> for pipelined eviction. Moving forward we also need to be careful with
> dma mappings which can be released in SYSTEM but may remain in TT.
> 
> Signed-off-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 77d5c5710688..fd41114f2dfb 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -40,6 +40,20 @@ static struct ttm_placement sys_placement = {
>  	.busy_placement = &sys_placement_flags,
>  };
>  
> +static const struct ttm_place tt_placement_flags = {
> +	.fpfn = 0,
> +	.lpfn = 0,
> +	.mem_type = XE_PL_TT,
> +	.flags = 0,
> +};
> +
> +static struct ttm_placement tt_placement = {
> +	.num_placement = 1,
> +	.placement = &tt_placement_flags,
> +	.num_busy_placement = 1,
> +	.busy_placement = &sys_placement_flags,
> +};
> +
>  bool mem_type_is_vram(u32 mem_type)
>  {
>  	return mem_type >= XE_PL_VRAM0 && mem_type != XE_PL_STOLEN;
> @@ -225,6 +239,8 @@ static void xe_evict_flags(struct ttm_buffer_object *tbo,
>  	case XE_PL_VRAM0:
>  	case XE_PL_VRAM1:
>  	case XE_PL_STOLEN:
> +		*placement = tt_placement;
> +		break;
>  	case XE_PL_TT:
>  	default:
>  		/* for now kick out to system */

NIT, you can probably delete this comment now.

Anyways:
Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> -- 
> 2.40.1
> 


More information about the Intel-xe mailing list