diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c index 4852fdcb4b95..d84d6a422c45 100644 --- a/drivers/gpu/drm/xe/xe_query.c +++ b/drivers/gpu/drm/xe/xe_query.c @@ -342,6 +342,8 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query) DRM_XE_QUERY_CONFIG_FLAG_HAS_LOW_LATENCY; config->info[DRM_XE_QUERY_CONFIG_FLAGS] |= DRM_XE_QUERY_CONFIG_FLAG_HAS_DISABLE_STATE_CACHE_PERF_FIX; + config->info[DRM_XE_QUERY_CONFIG_FLAGS] |= + DRM_XE_QUERY_CONFIG_FLAG_HAS_PURGING_SUPPORT; config->info[DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT] = xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K ? SZ_64K : SZ_4K; config->info[DRM_XE_QUERY_CONFIG_VA_BITS] = xe->info.va_bits; diff --git a/drivers/gpu/drm/xe/xe_vm_madvise.c b/drivers/gpu/drm/xe/xe_vm_madvise.c index b7c1c1c525b2..a169cb3f3591 100644 --- a/drivers/gpu/drm/xe/xe_vm_madvise.c +++ b/drivers/gpu/drm/xe/xe_vm_madvise.c @@ -337,18 +337,11 @@ void xe_bo_recompute_purgeable_state(struct xe_bo *bo) * * Handles DONTNEED/WILLNEED/PURGED states. Tracks if any BO was purged * in details->has_purged_bo for later copy to userspace. - * - * Note: Marked __maybe_unused until hooked into madvise_funcs[] in the - * final patch to maintain bisectability. The NULL placeholder in the - * array ensures proper -EINVAL return for userspace until all supporting - * infrastructure (shrinker, per-VMA tracking) is complete. */ -static void __maybe_unused madvise_purgeable(struct xe_device *xe, - struct xe_vm *vm, - struct xe_vma **vmas, - int num_vmas, - struct drm_xe_madvise *op, - struct xe_madvise_details *details) +static void madvise_purgeable(struct xe_device *xe, struct xe_vm *vm, + struct xe_vma **vmas, int num_vmas, + struct drm_xe_madvise *op, + struct xe_madvise_details *details) { int i; @@ -417,12 +410,7 @@ static const madvise_func madvise_funcs[] = { [DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC] = madvise_preferred_mem_loc, [DRM_XE_MEM_RANGE_ATTR_ATOMIC] = madvise_atomic, [DRM_XE_MEM_RANGE_ATTR_PAT] = madvise_pat_index, - /* - * Purgeable support implemented but not enabled yet to maintain - * bisectability. Will be set to madvise_purgeable() in final patch - * when all infrastructure (shrinker, VMA tracking) is complete. - */ - [DRM_XE_VMA_ATTR_PURGEABLE_STATE] = NULL, + [DRM_XE_VMA_ATTR_PURGEABLE_STATE] = madvise_purgeable, }; static u8 xe_zap_ptes_in_madvise_range(struct xe_vm *vm, u64 start, u64 end)