drm/xe: Only zap PTEs as needed
authorMatthew Brost <matthew.brost@intel.com>
Tue, 14 May 2024 23:23:25 +0000 (16:23 -0700)
committerMatthew Brost <matthew.brost@intel.com>
Wed, 15 May 2024 15:07:57 +0000 (08:07 -0700)
If PTEs are already invalidated no need to invalidate again.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240514232325.84508-1-matthew.brost@intel.com
drivers/gpu/drm/xe/xe_pt.c

index 87975e45622a875fccfd251bf9afe8c326447a1a..11dd0988ffda82bbee96619f9a9cd5f82d80edb3 100644 (file)
@@ -812,8 +812,9 @@ bool xe_pt_zap_ptes(struct xe_tile *tile, struct xe_vma *vma)
                .tile = tile,
        };
        struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
+       u8 pt_mask = (vma->tile_present & ~vma->tile_invalidated);
 
-       if (!(vma->tile_present & BIT(tile->id)))
+       if (!(pt_mask & BIT(tile->id)))
                return false;
 
        (void)xe_pt_walk_shared(&pt->base, pt->level, xe_vma_start(vma),