Re: [PATCH V14 1/9] drm/xe: Link VRAM object with gpu buddy
"Ghimiray, Himal Prasad" <[email protected]>
| Newsgroups | org.freedesktop.lists.intel-xe |
|---|---|
| Message-ID | <[email protected]> |
On 30-07-2026 15:41, Tejas Upadhyay wrote: > Setup to link TTM buffer object inside gpu buddy. This functionality > is critical for supporting the memory page offline feature on CRI, > where identified faulty pages must be traced back to their > originating buffer for safe removal. > > V2(MattB): Clear block->private in xe_ttm_vram_mgr_del as well > > Reviewed-by: Matthew Brost <[email protected]> > Signed-off-by: Tejas Upadhyay <[email protected]> > --- > drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c > index b518f7dec680..5ab5dfdb183c 100644 > --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c > +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c > @@ -54,6 +54,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man, > struct xe_ttm_vram_mgr *mgr = to_xe_ttm_vram_mgr(man); > struct xe_ttm_vram_mgr_resource *vres; > struct gpu_buddy *mm = &mgr->mm; > + struct gpu_buddy_block *block; > u64 size, min_page_size; > unsigned long lpfn; > int err; > @@ -138,6 +139,8 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man, > } > > mgr->visible_avail -= vres->used_visible_size; > + list_for_each_entry(block, &vres->blocks, link) > + block->private = tbo; > mutex_unlock(&mgr->lock); > > if (!(vres->base.placement & TTM_PL_FLAG_CONTIGUOUS) && > @@ -176,8 +179,11 @@ static void xe_ttm_vram_mgr_del(struct ttm_resource_manager *man, > to_xe_ttm_vram_mgr_resource(res); > struct xe_ttm_vram_mgr *mgr = to_xe_ttm_vram_mgr(man); > struct gpu_buddy *mm = &mgr->mm; > + struct gpu_buddy_block *block; > > mutex_lock(&mgr->lock); > + list_for_each_entry(block, &vres->blocks, link) > + block->private = NULL; Reviewed-by: Himal Prasad Ghimiray <[email protected]> > gpu_buddy_free_list(mm, &vres->blocks, 0); > mgr->visible_avail += vres->used_visible_size; > mutex_unlock(&mgr->lock);