[PATCH 2/3] drm/xe/bo: Allow eviction of unbound local bos
Thomas Hellström
thomas.hellstrom at linux.intel.com
Tue Feb 27 11:54:43 UTC 2024
On Mon, 2024-02-26 at 21:42 +0000, Matthew Brost wrote:
> On Mon, Feb 26, 2024 at 05:44:54PM +0100, Thomas Hellström wrote:
> > Local bos that don't have any gpu_vmas set up are allowed
> > to be evicted. Support that.
> >
> > Fixes: 24f947d58fe5 ("drm/xe: Use DRM GPUVM helpers for external-
> > and evicted objects")
> > Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > Cc: Matthew Brost <matthew.brost at intel.com>
> > Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> > Cc: Oded Gabbay <ogabbay at kernel.org>
> > Signed-off-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_bo.c | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_bo.c
> > b/drivers/gpu/drm/xe/xe_bo.c
> > index 143d93632253..2931b9030503 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.c
> > +++ b/drivers/gpu/drm/xe/xe_bo.c
> > @@ -1057,10 +1057,15 @@ static bool xe_bo_eviction_valuable(struct
> > ttm_buffer_object *ttm_bo,
> > struct xe_vm *vm = xe_bo->vm;
> >
> > if (vm && !drm_gpuvm_is_extobj(&vm->gpuvm,
> > &ttm_bo->base) &&
> > - vm->is_validating)
> > + vm->is_validating) {
> > + /* Not bound to the vm? */
> > + if (list_empty(&ttm_bo->base.gpuva.list))
>
> Do we not need a lock here? Maybe add drm_gem_gpuva_assert_lock_held
> to
> make that clear?
Good point. I'll add an assert here. The lock is needed to
read vm->is_validating as well.
/Thomas
>
> Matt
>
> > + goto allow;
> > return false;
> > + }
> > }
> >
> > +allow:
> > return ttm_bo_eviction_valuable(ttm_bo, place);
> > }
> >
> > --
> > 2.43.0
> >
More information about the Intel-xe
mailing list