Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 /*
0003  * Copyright © 2019 Intel Corporation
0004  */
0005 
0006 #ifndef __I915_GEM_SHRINKER_H__
0007 #define __I915_GEM_SHRINKER_H__
0008 
0009 #include <linux/bits.h>
0010 
0011 struct drm_i915_private;
0012 struct i915_gem_ww_ctx;
0013 struct mutex;
0014 
0015 /* i915_gem_shrinker.c */
0016 unsigned long i915_gem_shrink(struct i915_gem_ww_ctx *ww,
0017                   struct drm_i915_private *i915,
0018                   unsigned long target,
0019                   unsigned long *nr_scanned,
0020                   unsigned flags);
0021 #define I915_SHRINK_UNBOUND BIT(0)
0022 #define I915_SHRINK_BOUND   BIT(1)
0023 #define I915_SHRINK_ACTIVE  BIT(2)
0024 #define I915_SHRINK_VMAPS   BIT(3)
0025 #define I915_SHRINK_WRITEBACK   BIT(4)
0026 
0027 unsigned long i915_gem_shrink_all(struct drm_i915_private *i915);
0028 void i915_gem_driver_register__shrinker(struct drm_i915_private *i915);
0029 void i915_gem_driver_unregister__shrinker(struct drm_i915_private *i915);
0030 void i915_gem_shrinker_taints_mutex(struct drm_i915_private *i915,
0031                     struct mutex *mutex);
0032 
0033 #endif /* __I915_GEM_SHRINKER_H__ */