[Intel-xe] [PATCH v6 1/6] drm/xe/bo: consider bo->flags in xe_bo_migrate()
Souza, Jose
jose.souza at intel.com
Fri Jun 23 22:55:29 UTC 2023
On Mon, 2023-06-19 at 12:00 +0100, Matthew Auld wrote:
> For VRAM allocations the bo->flags can control some characteristics of
> the underlying memory, like whether it needs to be contiguous, and in
> the future whether it needs to be in the CPU visible portion. Rather use
> add_vram() in xe_bo_migrate() which should take care of such things for
> us.
Reviewed-by: José Roberto de Souza <jose.souza at intel.com>
>
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> Cc: José Roberto de Souza <jose.souza at intel.com>
> ---
> drivers/gpu/drm/xe/xe_bo.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index b9f4b61381ca..71a14e1f25be 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -1852,6 +1852,7 @@ static void xe_place_from_ttm_type(u32 mem_type, struct ttm_place *place)
> */
> int xe_bo_migrate(struct xe_bo *bo, u32 mem_type)
> {
> + struct xe_device *xe = ttm_to_xe_device(bo->ttm.bdev);
> struct ttm_operation_ctx ctx = {
> .interruptible = true,
> .no_wait_gpu = false,
> @@ -1876,6 +1877,18 @@ int xe_bo_migrate(struct xe_bo *bo, u32 mem_type)
> placement.placement = &requested;
> placement.busy_placement = &requested;
>
> + /*
> + * Stolen needs to be handled like below VRAM handling if we ever need
> + * to support it.
> + */
> + drm_WARN_ON(&xe->drm, mem_type == XE_PL_STOLEN);
> +
> + if (mem_type_is_vram(mem_type)) {
> + u32 c = 0;
> +
> + add_vram(xe, bo, &requested, bo->flags, mem_type, &c);
> + }
> +
> return ttm_bo_validate(&bo->ttm, &placement, &ctx);
> }
>
More information about the Intel-xe
mailing list