Symbol: shrinker
drivers/android/binder_alloc.c
1218
binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/android/binder_alloc.c
1224
binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/android/binder_alloc.c
1230
static struct shrinker *binder_shrinker;
drivers/gpu/drm/drm_pagemap_util.c
101
cache->shrinker = shrinker;
drivers/gpu/drm/drm_pagemap_util.c
103
err = devm_add_action_or_reset(shrinker->drm->dev, drm_pagemap_cache_fini, cache);
drivers/gpu/drm/drm_pagemap_util.c
267
struct drm_pagemap_shrinker *shrinker = cache->shrinker;
drivers/gpu/drm/drm_pagemap_util.c
269
spin_lock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
271
spin_unlock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
276
atomic_dec(&shrinker->num_dpagemaps);
drivers/gpu/drm/drm_pagemap_util.c
277
spin_unlock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
298
might_lock(&cache->shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
32
struct drm_pagemap_shrinker *shrinker;
drivers/gpu/drm/drm_pagemap_util.c
320
struct drm_pagemap_shrinker *shrinker;
drivers/gpu/drm/drm_pagemap_util.c
337
shrinker = cache->shrinker;
drivers/gpu/drm/drm_pagemap_util.c
338
spin_lock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
339
list_add_tail(&dpagemap->shrink_link, &shrinker->dpagemaps);
drivers/gpu/drm/drm_pagemap_util.c
340
atomic_inc(&shrinker->num_dpagemaps);
drivers/gpu/drm/drm_pagemap_util.c
341
spin_unlock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
351
drm_pagemap_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/drm_pagemap_util.c
353
struct drm_pagemap_shrinker *shrinker = shrink->private_data;
drivers/gpu/drm/drm_pagemap_util.c
354
unsigned long count = atomic_read(&shrinker->num_dpagemaps);
drivers/gpu/drm/drm_pagemap_util.c
360
drm_pagemap_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/drm_pagemap_util.c
362
struct drm_pagemap_shrinker *shrinker = shrink->private_data;
drivers/gpu/drm/drm_pagemap_util.c
368
spin_lock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
370
dpagemap = list_first_entry_or_null(&shrinker->dpagemaps, typeof(*dpagemap),
drivers/gpu/drm/drm_pagemap_util.c
375
atomic_dec(&shrinker->num_dpagemaps);
drivers/gpu/drm/drm_pagemap_util.c
377
spin_unlock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
389
spin_lock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
391
spin_unlock(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
398
struct drm_pagemap_shrinker *shrinker = arg;
drivers/gpu/drm/drm_pagemap_util.c
400
drm_dbg(shrinker->drm, "Destroying dpagemap shrinker.\n");
drivers/gpu/drm/drm_pagemap_util.c
401
drm_WARN_ON(shrinker->drm, !!atomic_read(&shrinker->num_dpagemaps));
drivers/gpu/drm/drm_pagemap_util.c
402
shrinker_free(shrinker->shrink);
drivers/gpu/drm/drm_pagemap_util.c
403
kfree(shrinker);
drivers/gpu/drm/drm_pagemap_util.c
419
struct drm_pagemap_shrinker *shrinker;
drivers/gpu/drm/drm_pagemap_util.c
420
struct shrinker *shrink;
drivers/gpu/drm/drm_pagemap_util.c
423
shrinker = kzalloc_obj(*shrinker);
drivers/gpu/drm/drm_pagemap_util.c
424
if (!shrinker)
drivers/gpu/drm/drm_pagemap_util.c
429
kfree(shrinker);
drivers/gpu/drm/drm_pagemap_util.c
433
spin_lock_init(&shrinker->lock);
drivers/gpu/drm/drm_pagemap_util.c
434
INIT_LIST_HEAD(&shrinker->dpagemaps);
drivers/gpu/drm/drm_pagemap_util.c
435
shrinker->drm = drm;
drivers/gpu/drm/drm_pagemap_util.c
436
shrinker->shrink = shrink;
drivers/gpu/drm/drm_pagemap_util.c
439
shrink->private_data = shrinker;
drivers/gpu/drm/drm_pagemap_util.c
442
err = devm_add_action_or_reset(drm->dev, drm_pagemap_shrinker_fini, shrinker);
drivers/gpu/drm/drm_pagemap_util.c
446
return shrinker;
drivers/gpu/drm/drm_pagemap_util.c
55
struct shrinker *shrink;
drivers/gpu/drm/drm_pagemap_util.c
65
drm_dbg(cache->shrinker->drm, "Destroying dpagemap cache.\n");
drivers/gpu/drm/drm_pagemap_util.c
91
struct drm_pagemap_cache *drm_pagemap_cache_create_devm(struct drm_pagemap_shrinker *shrinker)
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
290
i915_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
292
struct drm_i915_private *i915 = shrinker->private_data;
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
309
i915->mm.shrinker->batch =
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
310
max((i915->mm.shrinker->batch + avg) >> 1,
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
318
i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
320
struct drm_i915_private *i915 = shrinker->private_data;
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
432
i915->mm.shrinker = shrinker_alloc(0, "drm-i915_gem");
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
433
if (!i915->mm.shrinker) {
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
436
i915->mm.shrinker->scan_objects = i915_gem_shrinker_scan;
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
437
i915->mm.shrinker->count_objects = i915_gem_shrinker_count;
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
438
i915->mm.shrinker->batch = 4096;
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
439
i915->mm.shrinker->private_data = i915;
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
441
shrinker_register(i915->mm.shrinker);
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
458
shrinker_free(i915->mm.shrinker);
drivers/gpu/drm/i915/i915_drv.h
148
struct shrinker *shrinker;
drivers/gpu/drm/msm/msm_drv.h
154
struct shrinker *shrinker;
drivers/gpu/drm/msm/msm_gem_shrinker.c
154
msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/msm/msm_gem_shrinker.c
156
struct msm_drm_private *priv = shrinker->private_data;
drivers/gpu/drm/msm/msm_gem_shrinker.c
210
if (priv->shrinker)
drivers/gpu/drm/msm/msm_gem_shrinker.c
211
ret = msm_gem_shrinker_scan(priv->shrinker, &sc);
drivers/gpu/drm/msm/msm_gem_shrinker.c
275
priv->shrinker = shrinker_alloc(0, "drm-msm_gem");
drivers/gpu/drm/msm/msm_gem_shrinker.c
276
if (!priv->shrinker)
drivers/gpu/drm/msm/msm_gem_shrinker.c
279
priv->shrinker->count_objects = msm_gem_shrinker_count;
drivers/gpu/drm/msm/msm_gem_shrinker.c
280
priv->shrinker->scan_objects = msm_gem_shrinker_scan;
drivers/gpu/drm/msm/msm_gem_shrinker.c
281
priv->shrinker->private_data = priv;
drivers/gpu/drm/msm/msm_gem_shrinker.c
283
shrinker_register(priv->shrinker);
drivers/gpu/drm/msm/msm_gem_shrinker.c
301
if (priv->shrinker) {
drivers/gpu/drm/msm/msm_gem_shrinker.c
303
shrinker_free(priv->shrinker);
drivers/gpu/drm/msm/msm_gem_shrinker.c
34
msm_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/msm/msm_gem_shrinker.c
36
struct msm_drm_private *priv = shrinker->private_data;
drivers/gpu/drm/panfrost/panfrost_device.h
174
struct shrinker *shrinker;
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
102
pfdev->shrinker = shrinker_alloc(0, "drm-panfrost");
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
103
if (!pfdev->shrinker)
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
106
pfdev->shrinker->count_objects = panfrost_gem_shrinker_count;
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
107
pfdev->shrinker->scan_objects = panfrost_gem_shrinker_scan;
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
108
pfdev->shrinker->private_data = pfdev;
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
110
shrinker_register(pfdev->shrinker);
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
125
if (pfdev->shrinker)
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
126
shrinker_free(pfdev->shrinker);
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
19
panfrost_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
21
struct panfrost_device *pfdev = shrinker->private_data;
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
65
panfrost_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
67
struct panfrost_device *pfdev = shrinker->private_data;
drivers/gpu/drm/panthor/panthor_device.h
188
struct shrinker *shrinker;
drivers/gpu/drm/panthor/panthor_gem.c
1366
panthor_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/panthor/panthor_gem.c
1368
struct panthor_device *ptdev = shrinker->private_data;
drivers/gpu/drm/panthor/panthor_gem.c
1491
panthor_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)
drivers/gpu/drm/panthor/panthor_gem.c
1493
struct panthor_device *ptdev = shrinker->private_data;
drivers/gpu/drm/panthor/panthor_gem.c
1548
struct shrinker *shrinker;
drivers/gpu/drm/panthor/panthor_gem.c
1561
shrinker = shrinker_alloc(0, "drm-panthor-gem");
drivers/gpu/drm/panthor/panthor_gem.c
1562
if (!shrinker)
drivers/gpu/drm/panthor/panthor_gem.c
1565
shrinker->count_objects = panthor_gem_shrinker_count;
drivers/gpu/drm/panthor/panthor_gem.c
1566
shrinker->scan_objects = panthor_gem_shrinker_scan;
drivers/gpu/drm/panthor/panthor_gem.c
1567
shrinker->private_data = ptdev;
drivers/gpu/drm/panthor/panthor_gem.c
1568
ptdev->reclaim.shrinker = shrinker;
drivers/gpu/drm/panthor/panthor_gem.c
1570
shrinker_register(shrinker);
drivers/gpu/drm/panthor/panthor_gem.c
1576
if (ptdev->reclaim.shrinker)
drivers/gpu/drm/panthor/panthor_gem.c
1577
shrinker_free(ptdev->reclaim.shrinker);
drivers/gpu/drm/panthor/panthor_gem.c
1726
if (ptdev->reclaim.shrinker)
drivers/gpu/drm/panthor/panthor_gem.c
1727
panthor_gem_shrinker_scan(ptdev->reclaim.shrinker, &sc);
drivers/gpu/drm/ttm/ttm_pool.c
1292
static unsigned long ttm_pool_shrinker_scan(struct shrinker *shrink,
drivers/gpu/drm/ttm/ttm_pool.c
1308
static unsigned long ttm_pool_shrinker_count(struct shrinker *shrink,
drivers/gpu/drm/ttm/ttm_pool.c
148
static struct shrinker *mm_shrinker;
drivers/gpu/drm/xe/xe_bo.c
431
xe_shrinker_mod_pages(xe->mem.shrinker, 0, tt->num_pages);
drivers/gpu/drm/xe/xe_bo.c
433
xe_shrinker_mod_pages(xe->mem.shrinker, tt->num_pages, 0);
drivers/gpu/drm/xe/xe_bo.c
441
xe_shrinker_mod_pages(xe->mem.shrinker, 0, -(long)tt->num_pages);
drivers/gpu/drm/xe/xe_bo.c
443
xe_shrinker_mod_pages(xe->mem.shrinker, -(long)tt->num_pages, 0);
drivers/gpu/drm/xe/xe_bo.c
862
xe_shrinker_mod_pages(xe->mem.shrinker, -tt_pages, tt_pages);
drivers/gpu/drm/xe/xe_bo.c
866
xe_shrinker_mod_pages(xe->mem.shrinker, tt_pages, -tt_pages);
drivers/gpu/drm/xe/xe_device_types.h
279
struct xe_shrinker *shrinker;
drivers/gpu/drm/xe/xe_shrinker.c
139
xe_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/xe/xe_shrinker.c
141
struct xe_shrinker *shrinker = to_xe_shrinker(shrink);
drivers/gpu/drm/xe/xe_shrinker.c
146
read_lock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
149
num_pages = min_t(unsigned long, num_pages, shrinker->shrinkable_pages);
drivers/gpu/drm/xe/xe_shrinker.c
153
num_pages += shrinker->purgeable_pages;
drivers/gpu/drm/xe/xe_shrinker.c
154
read_unlock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
166
static bool xe_shrinker_runtime_pm_get(struct xe_shrinker *shrinker, bool force,
drivers/gpu/drm/xe/xe_shrinker.c
169
struct xe_device *xe = shrinker->xe;
drivers/gpu/drm/xe/xe_shrinker.c
176
read_lock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
177
force = (nr_to_scan > shrinker->purgeable_pages && can_backup);
drivers/gpu/drm/xe/xe_shrinker.c
178
read_unlock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
188
queue_work(xe->unordered_wq, &shrinker->pm_worker);
drivers/gpu/drm/xe/xe_shrinker.c
195
static void xe_shrinker_runtime_pm_put(struct xe_shrinker *shrinker, bool runtime_pm)
drivers/gpu/drm/xe/xe_shrinker.c
198
xe_pm_runtime_put(shrinker->xe);
drivers/gpu/drm/xe/xe_shrinker.c
201
static unsigned long xe_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/gpu/drm/xe/xe_shrinker.c
203
struct xe_shrinker *shrinker = to_xe_shrinker(shrink);
drivers/gpu/drm/xe/xe_shrinker.c
221
read_lock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
222
purgeable = !!shrinker->purgeable_pages;
drivers/gpu/drm/xe/xe_shrinker.c
223
read_unlock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
226
runtime_pm = xe_shrinker_runtime_pm_get(shrinker, false, nr_to_scan, can_backup);
drivers/gpu/drm/xe/xe_shrinker.c
229
lret = xe_shrinker_walk(shrinker->xe, &ctx, shrink_flags,
drivers/gpu/drm/xe/xe_shrinker.c
241
runtime_pm = xe_shrinker_runtime_pm_get(shrinker, true, 0, can_backup);
drivers/gpu/drm/xe/xe_shrinker.c
245
lret = xe_shrinker_walk(shrinker->xe, &ctx, shrink_flags,
drivers/gpu/drm/xe/xe_shrinker.c
252
xe_shrinker_runtime_pm_put(shrinker, runtime_pm);
drivers/gpu/drm/xe/xe_shrinker.c
259
struct xe_shrinker *shrinker =
drivers/gpu/drm/xe/xe_shrinker.c
260
container_of(work, typeof(*shrinker), pm_worker);
drivers/gpu/drm/xe/xe_shrinker.c
262
xe_pm_runtime_get(shrinker->xe);
drivers/gpu/drm/xe/xe_shrinker.c
263
xe_pm_runtime_put(shrinker->xe);
drivers/gpu/drm/xe/xe_shrinker.c
268
struct xe_shrinker *shrinker = arg;
drivers/gpu/drm/xe/xe_shrinker.c
270
xe_assert(shrinker->xe, !shrinker->shrinkable_pages);
drivers/gpu/drm/xe/xe_shrinker.c
271
xe_assert(shrinker->xe, !shrinker->purgeable_pages);
drivers/gpu/drm/xe/xe_shrinker.c
272
shrinker_free(shrinker->shrink);
drivers/gpu/drm/xe/xe_shrinker.c
273
flush_work(&shrinker->pm_worker);
drivers/gpu/drm/xe/xe_shrinker.c
274
kfree(shrinker);
drivers/gpu/drm/xe/xe_shrinker.c
285
struct xe_shrinker *shrinker = kzalloc_obj(*shrinker);
drivers/gpu/drm/xe/xe_shrinker.c
287
if (!shrinker)
drivers/gpu/drm/xe/xe_shrinker.c
290
shrinker->shrink = shrinker_alloc(0, "drm-xe_gem:%s", xe->drm.unique);
drivers/gpu/drm/xe/xe_shrinker.c
291
if (!shrinker->shrink) {
drivers/gpu/drm/xe/xe_shrinker.c
292
kfree(shrinker);
drivers/gpu/drm/xe/xe_shrinker.c
296
INIT_WORK(&shrinker->pm_worker, xe_shrinker_pm);
drivers/gpu/drm/xe/xe_shrinker.c
297
shrinker->xe = xe;
drivers/gpu/drm/xe/xe_shrinker.c
298
rwlock_init(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
299
shrinker->shrink->count_objects = xe_shrinker_count;
drivers/gpu/drm/xe/xe_shrinker.c
300
shrinker->shrink->scan_objects = xe_shrinker_scan;
drivers/gpu/drm/xe/xe_shrinker.c
301
shrinker->shrink->private_data = shrinker;
drivers/gpu/drm/xe/xe_shrinker.c
302
shrinker_register(shrinker->shrink);
drivers/gpu/drm/xe/xe_shrinker.c
303
xe->mem.shrinker = shrinker;
drivers/gpu/drm/xe/xe_shrinker.c
305
return drmm_add_action_or_reset(&xe->drm, xe_shrinker_fini, shrinker);
drivers/gpu/drm/xe/xe_shrinker.c
31
struct shrinker *shrink;
drivers/gpu/drm/xe/xe_shrinker.c
35
static struct xe_shrinker *to_xe_shrinker(struct shrinker *shrink)
drivers/gpu/drm/xe/xe_shrinker.c
49
xe_shrinker_mod_pages(struct xe_shrinker *shrinker, long shrinkable, long purgeable)
drivers/gpu/drm/xe/xe_shrinker.c
51
write_lock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.c
52
shrinker->shrinkable_pages += shrinkable;
drivers/gpu/drm/xe/xe_shrinker.c
53
shrinker->purgeable_pages += purgeable;
drivers/gpu/drm/xe/xe_shrinker.c
54
write_unlock(&shrinker->lock);
drivers/gpu/drm/xe/xe_shrinker.h
12
void xe_shrinker_mod_pages(struct xe_shrinker *shrinker, long shrinkable, long purgeable);
drivers/md/bcache/bcache.h
547
struct shrinker *shrink;
drivers/md/bcache/btree.c
665
static unsigned long bch_mca_scan(struct shrinker *shrink,
drivers/md/bcache/btree.c
732
static unsigned long bch_mca_count(struct shrinker *shrink,
drivers/md/dm-bufio.c
2463
static unsigned long dm_bufio_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
drivers/md/dm-bufio.c
2474
static unsigned long dm_bufio_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
drivers/md/dm-bufio.c
2592
c->shrinker = shrinker_alloc(0, "dm-bufio:(%u:%u)",
drivers/md/dm-bufio.c
2594
if (!c->shrinker) {
drivers/md/dm-bufio.c
2599
c->shrinker->count_objects = dm_bufio_shrink_count;
drivers/md/dm-bufio.c
2600
c->shrinker->scan_objects = dm_bufio_shrink_scan;
drivers/md/dm-bufio.c
2601
c->shrinker->seeks = 1;
drivers/md/dm-bufio.c
2602
c->shrinker->batch = 0;
drivers/md/dm-bufio.c
2603
c->shrinker->private_data = c;
drivers/md/dm-bufio.c
2605
shrinker_register(c->shrinker);
drivers/md/dm-bufio.c
2645
shrinker_free(c->shrinker);
drivers/md/dm-bufio.c
999
struct shrinker *shrinker;
drivers/md/dm-zoned-metadata.c
190
struct shrinker *mblk_shrinker;
drivers/md/dm-zoned-metadata.c
610
static unsigned long dmz_mblock_shrinker_count(struct shrinker *shrink,
drivers/md/dm-zoned-metadata.c
621
static unsigned long dmz_mblock_shrinker_scan(struct shrinker *shrink,
drivers/md/raid5.c
7435
shrinker_free(conf->shrinker);
drivers/md/raid5.c
7483
static unsigned long raid5_cache_scan(struct shrinker *shrink,
drivers/md/raid5.c
7504
static unsigned long raid5_cache_count(struct shrinker *shrink,
drivers/md/raid5.c
7739
conf->shrinker = shrinker_alloc(0, "md-raid5:%s", mdname(mddev));
drivers/md/raid5.c
7740
if (!conf->shrinker) {
drivers/md/raid5.c
7747
conf->shrinker->seeks = DEFAULT_SEEKS * conf->raid_disks * 4;
drivers/md/raid5.c
7748
conf->shrinker->scan_objects = raid5_cache_scan;
drivers/md/raid5.c
7749
conf->shrinker->count_objects = raid5_cache_count;
drivers/md/raid5.c
7750
conf->shrinker->batch = 128;
drivers/md/raid5.c
7751
conf->shrinker->private_data = conf;
drivers/md/raid5.c
7753
shrinker_register(conf->shrinker);
drivers/md/raid5.h
668
struct shrinker *shrinker;
drivers/misc/vmw_balloon.c
1513
static unsigned long vmballoon_shrinker_scan(struct shrinker *shrinker,
drivers/misc/vmw_balloon.c
1555
static unsigned long vmballoon_shrinker_count(struct shrinker *shrinker,
drivers/misc/vmw_balloon.c
1565
shrinker_free(b->shrinker);
drivers/misc/vmw_balloon.c
1566
b->shrinker = NULL;
drivers/misc/vmw_balloon.c
1575
b->shrinker = shrinker_alloc(0, "vmw-balloon");
drivers/misc/vmw_balloon.c
1576
if (!b->shrinker)
drivers/misc/vmw_balloon.c
1579
b->shrinker->scan_objects = vmballoon_shrinker_scan;
drivers/misc/vmw_balloon.c
1580
b->shrinker->count_objects = vmballoon_shrinker_count;
drivers/misc/vmw_balloon.c
1581
b->shrinker->private_data = b;
drivers/misc/vmw_balloon.c
1583
shrinker_register(b->shrinker);
drivers/misc/vmw_balloon.c
388
struct shrinker *shrinker;
drivers/virtio/virtio_balloon.c
114
struct shrinker *shrinker;
drivers/virtio/virtio_balloon.c
869
static unsigned long virtio_balloon_shrinker_scan(struct shrinker *shrinker,
drivers/virtio/virtio_balloon.c
872
struct virtio_balloon *vb = shrinker->private_data;
drivers/virtio/virtio_balloon.c
877
static unsigned long virtio_balloon_shrinker_count(struct shrinker *shrinker,
drivers/virtio/virtio_balloon.c
880
struct virtio_balloon *vb = shrinker->private_data;
drivers/virtio/virtio_balloon.c
901
shrinker_free(vb->shrinker);
drivers/virtio/virtio_balloon.c
906
vb->shrinker = shrinker_alloc(0, "virtio-balloon");
drivers/virtio/virtio_balloon.c
907
if (!vb->shrinker)
drivers/virtio/virtio_balloon.c
910
vb->shrinker->scan_objects = virtio_balloon_shrinker_scan;
drivers/virtio/virtio_balloon.c
911
vb->shrinker->count_objects = virtio_balloon_shrinker_count;
drivers/virtio/virtio_balloon.c
912
vb->shrinker->private_data = vb;
drivers/virtio/virtio_balloon.c
914
shrinker_register(vb->shrinker);
drivers/xen/xenbus/xenbus_probe_backend.c
279
static unsigned long backend_shrink_memory_count(struct shrinker *shrinker,
drivers/xen/xenbus/xenbus_probe_backend.c
289
struct shrinker *backend_memory_shrinker;
fs/btrfs/compression.c
1146
compr_pool.shrinker = shrinker_alloc(SHRINKER_NONSLAB, "btrfs-compr-pages");
fs/btrfs/compression.c
1147
if (!compr_pool.shrinker)
fs/btrfs/compression.c
1155
compr_pool.shrinker->count_objects = btrfs_compr_pool_count;
fs/btrfs/compression.c
1156
compr_pool.shrinker->scan_objects = btrfs_compr_pool_scan;
fs/btrfs/compression.c
1157
compr_pool.shrinker->batch = 32;
fs/btrfs/compression.c
1158
compr_pool.shrinker->seeks = DEFAULT_SEEKS;
fs/btrfs/compression.c
1159
shrinker_register(compr_pool.shrinker);
fs/btrfs/compression.c
1168
shrinker_free(compr_pool.shrinker);
fs/btrfs/compression.c
133
struct shrinker *shrinker;
fs/btrfs/compression.c
140
static unsigned long btrfs_compr_pool_count(struct shrinker *sh, struct shrink_control *sc)
fs/btrfs/compression.c
154
static unsigned long btrfs_compr_pool_scan(struct shrinker *sh, struct shrink_control *sc)
fs/erofs/zutil.c
242
static unsigned long erofs_shrink_count(struct shrinker *shrink,
fs/erofs/zutil.c
248
static unsigned long erofs_shrink_scan(struct shrinker *shrink,
fs/erofs/zutil.c
29
static struct shrinker *erofs_shrinker_info;
fs/ext4/ext4.h
1767
struct shrinker *s_es_shrinker;
fs/ext4/extents_status.c
1760
static unsigned long ext4_es_count(struct shrinker *shrink,
fs/ext4/extents_status.c
1772
static unsigned long ext4_es_scan(struct shrinker *shrink,
fs/f2fs/f2fs.h
4551
unsigned long f2fs_shrink_count(struct shrinker *shrink,
fs/f2fs/f2fs.h
4553
unsigned long f2fs_shrink_scan(struct shrinker *shrink,
fs/f2fs/shrinker.c
40
unsigned long f2fs_shrink_count(struct shrinker *shrink,
fs/f2fs/shrinker.c
79
unsigned long f2fs_shrink_scan(struct shrinker *shrink,
fs/f2fs/super.c
156
static struct shrinker *f2fs_shrinker_info;
fs/gfs2/glock.c
1979
static unsigned long gfs2_glock_shrink_scan(struct shrinker *shrink,
fs/gfs2/glock.c
1987
static unsigned long gfs2_glock_shrink_count(struct shrinker *shrink,
fs/gfs2/glock.c
1993
static struct shrinker *glock_shrinker;
fs/gfs2/quota.c
173
static unsigned long gfs2_qd_shrink_scan(struct shrinker *shrink,
fs/gfs2/quota.c
190
static unsigned long gfs2_qd_shrink_count(struct shrinker *shrink,
fs/gfs2/quota.c
196
static struct shrinker *gfs2_qd_shrinker;
fs/jbd2/journal.c
1253
static unsigned long jbd2_journal_shrink_scan(struct shrinker *shrink,
fs/jbd2/journal.c
1279
static unsigned long jbd2_journal_shrink_count(struct shrinker *shrink,
fs/mbcache.c
293
static unsigned long mb_cache_count(struct shrinker *shrink,
fs/mbcache.c
332
static unsigned long mb_cache_scan(struct shrinker *shrink,
fs/mbcache.c
40
struct shrinker *c_shrink;
fs/nfs/dir.c
2945
nfs_access_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/dir.c
2957
nfs_access_cache_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/internal.h
391
extern unsigned long nfs_access_cache_count(struct shrinker *shrink,
fs/nfs/internal.h
393
extern unsigned long nfs_access_cache_scan(struct shrinker *shrink,
fs/nfs/nfs42xattr.c
1000
(*shrinker)->seeks = seeks;
fs/nfs/nfs42xattr.c
1002
shrinker_register(*shrinker);
fs/nfs/nfs42xattr.c
1007
static void nfs4_xattr_shrinker_destroy(struct shrinker *shrinker,
fs/nfs/nfs42xattr.c
1010
shrinker_free(shrinker);
fs/nfs/nfs42xattr.c
790
static unsigned long nfs4_xattr_cache_count(struct shrinker *shrink,
fs/nfs/nfs42xattr.c
792
static unsigned long nfs4_xattr_entry_count(struct shrinker *shrink,
fs/nfs/nfs42xattr.c
794
static unsigned long nfs4_xattr_cache_scan(struct shrinker *shrink,
fs/nfs/nfs42xattr.c
796
static unsigned long nfs4_xattr_entry_scan(struct shrinker *shrink,
fs/nfs/nfs42xattr.c
799
static struct shrinker *nfs4_xattr_cache_shrinker;
fs/nfs/nfs42xattr.c
800
static struct shrinker *nfs4_xattr_entry_shrinker;
fs/nfs/nfs42xattr.c
801
static struct shrinker *nfs4_xattr_large_entry_shrinker;
fs/nfs/nfs42xattr.c
839
nfs4_xattr_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
860
nfs4_xattr_cache_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
920
nfs4_xattr_entry_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
950
nfs4_xattr_entry_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfs/nfs42xattr.c
975
typedef unsigned long (*count_objects_cb)(struct shrinker *s,
fs/nfs/nfs42xattr.c
977
typedef unsigned long (*scan_objects_cb)(struct shrinker *s,
fs/nfs/nfs42xattr.c
980
static int __init nfs4_xattr_shrinker_init(struct shrinker **shrinker,
fs/nfs/nfs42xattr.c
987
*shrinker = shrinker_alloc(SHRINKER_MEMCG_AWARE, name);
fs/nfs/nfs42xattr.c
988
if (!*shrinker)
fs/nfs/nfs42xattr.c
991
ret = list_lru_init_memcg(lru, *shrinker);
fs/nfs/nfs42xattr.c
993
shrinker_free(*shrinker);
fs/nfs/nfs42xattr.c
997
(*shrinker)->count_objects = count;
fs/nfs/nfs42xattr.c
998
(*shrinker)->scan_objects = scan;
fs/nfs/nfs42xattr.c
999
(*shrinker)->batch = batch;
fs/nfs/super.c
134
static struct shrinker *acl_shrinker;
fs/nfsd/filecache.c
598
nfsd_file_lru_count(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/filecache.c
604
nfsd_file_lru_scan(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/filecache.c
620
static struct shrinker *nfsd_file_shrinker;
fs/nfsd/netns.h
202
struct shrinker *nfsd_reply_cache_shrinker;
fs/nfsd/netns.h
220
struct shrinker *nfsd_client_shrinker;
fs/nfsd/nfs4state.c
2052
static struct shrinker *nfsd_slot_shrinker;
fs/nfsd/nfs4state.c
2308
nfsd_slot_count(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/nfs4state.c
2316
nfsd_slot_scan(struct shrinker *s, struct shrink_control *sc)
fs/nfsd/nfs4state.c
4994
nfsd4_state_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfs4state.c
5008
nfsd4_state_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfscache.c
294
nfsd_reply_cache_count(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfscache.c
313
nfsd_reply_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/nfsd/nfscache.c
41
static unsigned long nfsd_reply_cache_count(struct shrinker *shrink,
fs/nfsd/nfscache.c
43
static unsigned long nfsd_reply_cache_scan(struct shrinker *shrink,
fs/quota/dquot.c
3026
struct shrinker *dqcache_shrinker;
fs/quota/dquot.c
809
dqcache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
fs/quota/dquot.c
829
dqcache_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
fs/super.c
179
static unsigned long super_cache_scan(struct shrinker *shrink,
fs/super.c
236
static unsigned long super_cache_count(struct shrinker *shrink,
fs/ubifs/shrinker.c
267
unsigned long ubifs_shrink_count(struct shrinker *shrink,
fs/ubifs/shrinker.c
279
unsigned long ubifs_shrink_scan(struct shrinker *shrink,
fs/ubifs/super.c
57
static struct shrinker *ubifs_shrinker_info;
fs/ubifs/ubifs.h
1908
unsigned long ubifs_shrink_scan(struct shrinker *shrink,
fs/ubifs/ubifs.h
1910
unsigned long ubifs_shrink_count(struct shrinker *shrink,
fs/xfs/xfs_buf.c
1586
struct shrinker *shrink,
fs/xfs/xfs_buf.c
1608
struct shrinker *shrink,
fs/xfs/xfs_buf.h
99
struct shrinker *bt_shrinker;
fs/xfs/xfs_icache.c
2281
struct shrinker *shrink,
fs/xfs/xfs_icache.c
2302
struct shrinker *shrink,
fs/xfs/xfs_mount.h
312
struct shrinker *m_inodegc_shrinker;
fs/xfs/xfs_qm.c
492
struct shrinker *shrink,
fs/xfs/xfs_qm.c
526
struct shrinker *shrink,
fs/xfs/xfs_qm.h
67
struct shrinker *qi_shrinker;
include/drm/drm_pagemap_util.h
66
struct drm_pagemap_cache *drm_pagemap_cache_create_devm(struct drm_pagemap_shrinker *shrinker);
include/linux/fs/super_types.h
229
struct shrinker *s_shrink; /* per-sb shrinker handle */
include/linux/fs/super_types.h
32
struct shrinker;
include/linux/jbd2.h
897
struct shrinker *j_shrinker;
include/linux/list_lru.h
66
struct shrinker *shrinker);
include/linux/list_lru.h
70
#define list_lru_init_memcg(lru, shrinker) \
include/linux/list_lru.h
71
__list_lru_init((lru), true, shrinker)
include/linux/list_lru.h
73
static inline int list_lru_init_memcg_key(struct list_lru *lru, struct shrinker *shrinker,
include/linux/list_lru.h
79
return list_lru_init_memcg(lru, shrinker);
include/linux/memcontrol.h
1683
static inline int shrinker_id(struct shrinker *shrinker)
include/linux/memcontrol.h
1685
return shrinker->id;
include/linux/memcontrol.h
1719
static inline int shrinker_id(struct shrinker *shrinker)
include/linux/shrinker.h
135
struct shrinker *shrinker_alloc(unsigned int flags, const char *fmt, ...);
include/linux/shrinker.h
136
void shrinker_register(struct shrinker *shrinker);
include/linux/shrinker.h
137
void shrinker_free(struct shrinker *shrinker);
include/linux/shrinker.h
139
static inline bool shrinker_try_get(struct shrinker *shrinker)
include/linux/shrinker.h
141
return refcount_inc_not_zero(&shrinker->refcount);
include/linux/shrinker.h
144
static inline void shrinker_put(struct shrinker *shrinker)
include/linux/shrinker.h
146
if (refcount_dec_and_test(&shrinker->refcount))
include/linux/shrinker.h
147
complete(&shrinker->done);
include/linux/shrinker.h
151
extern int __printf(2, 3) shrinker_debugfs_rename(struct shrinker *shrinker,
include/linux/shrinker.h
155
int shrinker_debugfs_rename(struct shrinker *shrinker, const char *fmt, ...)
include/linux/shrinker.h
83
unsigned long (*count_objects)(struct shrinker *,
include/linux/shrinker.h
85
unsigned long (*scan_objects)(struct shrinker *,
include/trace/events/vmscan.h
273
TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
include/trace/events/vmscan.h
282
__field(struct shrinker *, shr)
include/trace/events/vmscan.h
323
TP_PROTO(struct shrinker *shr, int nid, int shrinker_retval,
include/trace/events/vmscan.h
330
__field(struct shrinker *, shr)
kernel/rcu/tree_nocb.h
1201
lazy_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
kernel/rcu/tree_nocb.h
1226
lazy_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
kernel/rcu/tree_nocb.h
1290
struct shrinker * __maybe_unused lazy_rcu_shrinker;
mm/huge_memory.c
290
static unsigned long shrink_huge_zero_folio_count(struct shrinker *shrink,
mm/huge_memory.c
297
static unsigned long shrink_huge_zero_folio_scan(struct shrinker *shrink,
mm/huge_memory.c
311
static struct shrinker *huge_zero_folio_shrinker;
mm/huge_memory.c
4403
static unsigned long deferred_split_count(struct shrinker *shrink,
mm/huge_memory.c
4465
static unsigned long deferred_split_scan(struct shrinker *shrink,
mm/huge_memory.c
73
static struct shrinker *deferred_split_shrinker;
mm/huge_memory.c
74
static unsigned long deferred_split_count(struct shrinker *shrink,
mm/huge_memory.c
76
static unsigned long deferred_split_scan(struct shrinker *shrink,
mm/internal.h
1772
struct shrinker *shrinker, const char *fmt, va_list ap)
mm/internal.h
1774
shrinker->name = kvasprintf_const(GFP_KERNEL, fmt, ap);
mm/internal.h
1776
return shrinker->name ? 0 : -ENOMEM;
mm/internal.h
1779
static inline void shrinker_debugfs_name_free(struct shrinker *shrinker)
mm/internal.h
1781
kfree_const(shrinker->name);
mm/internal.h
1782
shrinker->name = NULL;
mm/internal.h
1785
extern int shrinker_debugfs_add(struct shrinker *shrinker);
mm/internal.h
1786
extern struct dentry *shrinker_debugfs_detach(struct shrinker *shrinker,
mm/internal.h
1791
static inline int shrinker_debugfs_add(struct shrinker *shrinker)
mm/internal.h
1795
static inline int shrinker_debugfs_name_alloc(struct shrinker *shrinker,
mm/internal.h
1800
static inline void shrinker_debugfs_name_free(struct shrinker *shrinker)
mm/internal.h
1803
static inline struct dentry *shrinker_debugfs_detach(struct shrinker *shrinker,
mm/list_lru.c
664
int __list_lru_init(struct list_lru *lru, bool memcg_aware, struct shrinker *shrinker)
mm/list_lru.c
669
if (shrinker)
mm/list_lru.c
670
lru->shrinker_id = shrinker->id;
mm/shrinker.c
226
static int shrinker_memcg_alloc(struct shrinker *shrinker)
mm/shrinker.c
232
if (mem_cgroup_kmem_disabled() && !(shrinker->flags & SHRINKER_NONSLAB))
mm/shrinker.c
236
id = idr_alloc(&shrinker_idr, shrinker, 0, 0, GFP_KERNEL);
mm/shrinker.c
246
shrinker->id = id;
mm/shrinker.c
250
static void shrinker_memcg_remove(struct shrinker *shrinker)
mm/shrinker.c
252
int id = shrinker->id;
mm/shrinker.c
261
static long xchg_nr_deferred_memcg(int nid, struct shrinker *shrinker,
mm/shrinker.c
270
unit = info->unit[shrinker_id_to_index(shrinker->id)];
mm/shrinker.c
271
nr_deferred = atomic_long_xchg(&unit->nr_deferred[shrinker_id_to_offset(shrinker->id)], 0);
mm/shrinker.c
277
static long add_nr_deferred_memcg(long nr, int nid, struct shrinker *shrinker,
mm/shrinker.c
286
unit = info->unit[shrinker_id_to_index(shrinker->id)];
mm/shrinker.c
288
atomic_long_add_return(nr, &unit->nr_deferred[shrinker_id_to_offset(shrinker->id)]);
mm/shrinker.c
319
static int shrinker_memcg_alloc(struct shrinker *shrinker)
mm/shrinker.c
324
static void shrinker_memcg_remove(struct shrinker *shrinker)
mm/shrinker.c
328
static long xchg_nr_deferred_memcg(int nid, struct shrinker *shrinker,
mm/shrinker.c
334
static long add_nr_deferred_memcg(long nr, int nid, struct shrinker *shrinker,
mm/shrinker.c
341
static long xchg_nr_deferred(struct shrinker *shrinker,
mm/shrinker.c
346
if (!(shrinker->flags & SHRINKER_NUMA_AWARE))
mm/shrinker.c
350
(shrinker->flags & SHRINKER_MEMCG_AWARE))
mm/shrinker.c
351
return xchg_nr_deferred_memcg(nid, shrinker,
mm/shrinker.c
354
return atomic_long_xchg(&shrinker->nr_deferred[nid], 0);
mm/shrinker.c
358
static long add_nr_deferred(long nr, struct shrinker *shrinker,
mm/shrinker.c
363
if (!(shrinker->flags & SHRINKER_NUMA_AWARE))
mm/shrinker.c
367
(shrinker->flags & SHRINKER_MEMCG_AWARE))
mm/shrinker.c
368
return add_nr_deferred_memcg(nr, nid, shrinker,
mm/shrinker.c
371
return atomic_long_add_return(nr, &shrinker->nr_deferred[nid]);
mm/shrinker.c
377
struct shrinker *shrinker, int priority)
mm/shrinker.c
385
long batch_size = shrinker->batch ? shrinker->batch
mm/shrinker.c
389
freeable = shrinker->count_objects(shrinker, shrinkctl);
mm/shrinker.c
398
nr = xchg_nr_deferred(shrinker, shrinkctl);
mm/shrinker.c
400
if (shrinker->seeks) {
mm/shrinker.c
403
do_div(delta, shrinker->seeks);
mm/shrinker.c
417
trace_mm_shrink_slab_start(shrinker, shrinkctl, nr,
mm/shrinker.c
443
ret = shrinker->scan_objects(shrinker, shrinkctl);
mm/shrinker.c
468
new_nr = add_nr_deferred(next_deferred, shrinker, shrinkctl);
mm/shrinker.c
470
trace_mm_shrink_slab_end(shrinker, shrinkctl->nid, freed, nr, new_nr, total_scan,
mm/shrinker.c
540
struct shrinker *shrinker;
mm/shrinker.c
544
shrinker = idr_find(&shrinker_idr, shrinker_id);
mm/shrinker.c
545
if (unlikely(!shrinker || !shrinker_try_get(shrinker))) {
mm/shrinker.c
554
!(shrinker->flags & SHRINKER_NONSLAB)) {
mm/shrinker.c
556
shrinker_put(shrinker);
mm/shrinker.c
560
ret = do_shrink_slab(&sc, shrinker, priority);
mm/shrinker.c
579
ret = do_shrink_slab(&sc, shrinker, priority);
mm/shrinker.c
586
shrinker_put(shrinker);
mm/shrinker.c
628
struct shrinker *shrinker;
mm/shrinker.c
662
list_for_each_entry_rcu(shrinker, &shrinker_list, list) {
mm/shrinker.c
669
if (!shrinker_try_get(shrinker))
mm/shrinker.c
674
ret = do_shrink_slab(&sc, shrinker, priority);
mm/shrinker.c
680
shrinker_put(shrinker);
mm/shrinker.c
688
struct shrinker *shrinker_alloc(unsigned int flags, const char *fmt, ...)
mm/shrinker.c
690
struct shrinker *shrinker;
mm/shrinker.c
695
shrinker = kzalloc_obj(struct shrinker);
mm/shrinker.c
696
if (!shrinker)
mm/shrinker.c
700
err = shrinker_debugfs_name_alloc(shrinker, fmt, ap);
mm/shrinker.c
705
shrinker->flags = flags | SHRINKER_ALLOCATED;
mm/shrinker.c
706
shrinker->seeks = DEFAULT_SEEKS;
mm/shrinker.c
709
err = shrinker_memcg_alloc(shrinker);
mm/shrinker.c
712
shrinker->flags &= ~SHRINKER_MEMCG_AWARE;
mm/shrinker.c
719
return shrinker;
mm/shrinker.c
731
size = sizeof(*shrinker->nr_deferred);
mm/shrinker.c
735
shrinker->nr_deferred = kzalloc(size, GFP_KERNEL);
mm/shrinker.c
736
if (!shrinker->nr_deferred)
mm/shrinker.c
739
return shrinker;
mm/shrinker.c
742
shrinker_debugfs_name_free(shrinker);
mm/shrinker.c
744
kfree(shrinker);
mm/shrinker.c
749
void shrinker_register(struct shrinker *shrinker)
mm/shrinker.c
751
if (unlikely(!(shrinker->flags & SHRINKER_ALLOCATED))) {
mm/shrinker.c
757
list_add_tail_rcu(&shrinker->list, &shrinker_list);
mm/shrinker.c
758
shrinker->flags |= SHRINKER_REGISTERED;
mm/shrinker.c
759
shrinker_debugfs_add(shrinker);
mm/shrinker.c
762
init_completion(&shrinker->done);
mm/shrinker.c
768
refcount_set(&shrinker->refcount, 1);
mm/shrinker.c
774
struct shrinker *shrinker = container_of(head, struct shrinker, rcu);
mm/shrinker.c
776
kfree(shrinker->nr_deferred);
mm/shrinker.c
777
kfree(shrinker);
mm/shrinker.c
780
void shrinker_free(struct shrinker *shrinker)
mm/shrinker.c
785
if (!shrinker)
mm/shrinker.c
788
if (shrinker->flags & SHRINKER_REGISTERED) {
mm/shrinker.c
790
shrinker_put(shrinker);
mm/shrinker.c
797
wait_for_completion(&shrinker->done);
mm/shrinker.c
801
if (shrinker->flags & SHRINKER_REGISTERED) {
mm/shrinker.c
806
list_del_rcu(&shrinker->list);
mm/shrinker.c
807
debugfs_entry = shrinker_debugfs_detach(shrinker, &debugfs_id);
mm/shrinker.c
808
shrinker->flags &= ~SHRINKER_REGISTERED;
mm/shrinker.c
811
shrinker_debugfs_name_free(shrinker);
mm/shrinker.c
813
if (shrinker->flags & SHRINKER_MEMCG_AWARE)
mm/shrinker.c
814
shrinker_memcg_remove(shrinker);
mm/shrinker.c
820
call_rcu(&shrinker->rcu, shrinker_free_rcu_cb);
mm/shrinker_debug.c
104
struct shrinker *shrinker = file->private_data;
mm/shrinker_debug.c
128
if (shrinker->flags & SHRINKER_MEMCG_AWARE) {
mm/shrinker_debug.c
146
shrinker->scan_objects(shrinker, &sc);
mm/shrinker_debug.c
159
int shrinker_debugfs_add(struct shrinker *shrinker)
mm/shrinker_debug.c
174
shrinker->debugfs_id = id;
mm/shrinker_debug.c
176
snprintf(buf, sizeof(buf), "%s-%d", shrinker->name, id);
mm/shrinker_debug.c
18
static unsigned long shrinker_count_objects(struct shrinker *shrinker,
mm/shrinker_debug.c
184
shrinker->debugfs_entry = entry;
mm/shrinker_debug.c
186
if (shrinker->count_objects)
mm/shrinker_debug.c
187
debugfs_create_file("count", 0440, entry, shrinker,
mm/shrinker_debug.c
189
if (shrinker->scan_objects)
mm/shrinker_debug.c
190
debugfs_create_file("scan", 0220, entry, shrinker,
mm/shrinker_debug.c
195
int shrinker_debugfs_rename(struct shrinker *shrinker, const char *fmt, ...)
mm/shrinker_debug.c
210
old = shrinker->name;
mm/shrinker_debug.c
211
shrinker->name = new;
mm/shrinker_debug.c
213
ret = debugfs_change_name(shrinker->debugfs_entry, "%s-%d",
mm/shrinker_debug.c
214
shrinker->name, shrinker->debugfs_id);
mm/shrinker_debug.c
217
shrinker->name = old;
mm/shrinker_debug.c
228
struct dentry *shrinker_debugfs_detach(struct shrinker *shrinker,
mm/shrinker_debug.c
231
struct dentry *entry = shrinker->debugfs_entry;
mm/shrinker_debug.c
235
*debugfs_id = entry ? shrinker->debugfs_id : -1;
mm/shrinker_debug.c
236
shrinker->debugfs_entry = NULL;
mm/shrinker_debug.c
249
struct shrinker *shrinker;
mm/shrinker_debug.c
26
if (nid == 0 || (shrinker->flags & SHRINKER_NUMA_AWARE)) {
mm/shrinker_debug.c
260
list_for_each_entry(shrinker, &shrinker_list, list)
mm/shrinker_debug.c
261
if (!shrinker->debugfs_entry) {
mm/shrinker_debug.c
262
ret = shrinker_debugfs_add(shrinker);
mm/shrinker_debug.c
33
nr = shrinker->count_objects(shrinker, &sc);
mm/shrinker_debug.c
49
struct shrinker *shrinker = m->private;
mm/shrinker_debug.c
60
memcg_aware = shrinker->flags & SHRINKER_MEMCG_AWARE;
mm/shrinker_debug.c
67
total = shrinker_count_objects(shrinker,
mm/slab_common.c
2145
kfree_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
mm/slab_common.c
2163
kfree_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
mm/slab_common.c
2189
struct shrinker *kfree_rcu_shrinker;
mm/vmalloc.c
5484
vmap_node_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
mm/vmalloc.c
5499
vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
mm/vmalloc.c
5512
struct shrinker *vmap_node_shrinker;
mm/workingset.c
656
static unsigned long count_shadow_nodes(struct shrinker *shrinker,
mm/workingset.c
784
static unsigned long scan_shadow_nodes(struct shrinker *shrinker,
mm/workingset.c
801
struct shrinker *workingset_shadow_shrinker;
mm/zsmalloc.c
1984
static unsigned long zs_shrinker_scan(struct shrinker *shrinker,
mm/zsmalloc.c
1988
struct zs_pool *pool = shrinker->private_data;
mm/zsmalloc.c
2000
static unsigned long zs_shrinker_count(struct shrinker *shrinker,
mm/zsmalloc.c
2006
struct zs_pool *pool = shrinker->private_data;
mm/zsmalloc.c
2021
shrinker_free(pool->shrinker);
mm/zsmalloc.c
2026
pool->shrinker = shrinker_alloc(0, "mm-zspool:%s", pool->name);
mm/zsmalloc.c
2027
if (!pool->shrinker)
mm/zsmalloc.c
2030
pool->shrinker->scan_objects = zs_shrinker_scan;
mm/zsmalloc.c
2031
pool->shrinker->count_objects = zs_shrinker_count;
mm/zsmalloc.c
2032
pool->shrinker->batch = 0;
mm/zsmalloc.c
2033
pool->shrinker->private_data = pool;
mm/zsmalloc.c
2035
shrinker_register(pool->shrinker);
mm/zsmalloc.c
209
struct shrinker *shrinker;
mm/zswap.c
1169
static unsigned long zswap_shrinker_scan(struct shrinker *shrinker,
mm/zswap.c
1190
static unsigned long zswap_shrinker_count(struct shrinker *shrinker,
mm/zswap.c
1262
static struct shrinker *zswap_alloc_shrinker(void)
mm/zswap.c
1264
struct shrinker *shrinker;
mm/zswap.c
1266
shrinker =
mm/zswap.c
1268
if (!shrinker)
mm/zswap.c
1271
shrinker->scan_objects = zswap_shrinker_scan;
mm/zswap.c
1272
shrinker->count_objects = zswap_shrinker_count;
mm/zswap.c
1273
shrinker->batch = 0;
mm/zswap.c
1274
shrinker->seeks = DEFAULT_SEEKS;
mm/zswap.c
1275
return shrinker;
mm/zswap.c
170
static struct shrinker *zswap_shrinker;
net/sunrpc/auth.c
475
rpcauth_cache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
net/sunrpc/auth.c
489
rpcauth_cache_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
net/sunrpc/auth.c
866
static struct shrinker *rpc_cred_shrinker;