shrink
bool (*shrink)(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket),
if (shrink(obj, ticket)) {
int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
const unsigned int shrink[] = {
}, *s = shrink;
.shrink = shmem_shrink,
unsigned int shrink)
trace_i915_gem_shrink(i915, target, shrink);
if (shrink & I915_SHRINK_BOUND) {
shrink &= ~I915_SHRINK_BOUND;
if (shrink & I915_SHRINK_ACTIVE) {
if ((shrink & phase->bit) == 0)
if (shrink & I915_SHRINK_VMAPS &&
if (!(shrink & I915_SHRINK_ACTIVE) &&
if (drop_pages(obj, shrink, trylock_vm) &&
!try_to_writeback(obj, shrink))
if (shrink & I915_SHRINK_BOUND)
unsigned long shrink, bool trylock_vm)
if (shrink & I915_SHRINK_ACTIVE)
if (!(shrink & I915_SHRINK_BOUND))
if (obj->ops->shrink) {
return obj->ops->shrink(obj, shrink_flags);
.shrink = i915_ttm_shrink,
shrink,
bool (*shrink)(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket),
static unsigned long ttm_pool_shrinker_scan(struct shrinker *shrink,
static unsigned long ttm_pool_shrinker_count(struct shrinker *shrink,