[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