mirror of
https://github.com/torvalds/linux.git
synced 2026-07-30 11:11:26 +02:00
drm/xe: Adjust page count tracepoints in shrinker
Page accounting can change via the shrinker without calling xe_ttm_tt_unpopulate(), which normally updates page count tracepoints through update_global_total_pages. Add a call to update_global_total_pages when the shrinker successfully shrinks a BO. v2: - Don't adjust global accounting when pinning (Stuart) Cc: stable@vger.kernel.org Fixes:ce3d39fae3("drm/xe/bo: add GPU memory trace points") Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Stuart Summers <stuart.summers@intel.com> Link: https://patch.msgid.link/20260107205732.2267541-1-matthew.brost@intel.com (cherry picked from commitcc54eabdfb) Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
This commit is contained in:
parent
9dd1f5f3eb
commit
ca9e5115e8
|
|
@ -1055,6 +1055,7 @@ static long xe_bo_shrink_purge(struct ttm_operation_ctx *ctx,
|
|||
unsigned long *scanned)
|
||||
{
|
||||
struct xe_device *xe = ttm_to_xe_device(bo->bdev);
|
||||
struct ttm_tt *tt = bo->ttm;
|
||||
long lret;
|
||||
|
||||
/* Fake move to system, without copying data. */
|
||||
|
|
@ -1079,8 +1080,10 @@ static long xe_bo_shrink_purge(struct ttm_operation_ctx *ctx,
|
|||
.writeback = false,
|
||||
.allow_move = false});
|
||||
|
||||
if (lret > 0)
|
||||
if (lret > 0) {
|
||||
xe_ttm_tt_account_subtract(xe, bo->ttm);
|
||||
update_global_total_pages(bo->bdev, -(long)tt->num_pages);
|
||||
}
|
||||
|
||||
return lret;
|
||||
}
|
||||
|
|
@ -1166,8 +1169,10 @@ long xe_bo_shrink(struct ttm_operation_ctx *ctx, struct ttm_buffer_object *bo,
|
|||
if (needs_rpm)
|
||||
xe_pm_runtime_put(xe);
|
||||
|
||||
if (lret > 0)
|
||||
if (lret > 0) {
|
||||
xe_ttm_tt_account_subtract(xe, tt);
|
||||
update_global_total_pages(bo->bdev, -(long)tt->num_pages);
|
||||
}
|
||||
|
||||
out_unref:
|
||||
xe_bo_put(xe_bo);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user