Home
last modified time | relevance | path

Searched refs:shrinker (Results 1 – 25 of 61) sorted by relevance

123

/linux/mm/
H A Dshrinker.c216 static int shrinker_memcg_alloc(struct shrinker *shrinker) in shrinker_memcg_alloc() argument
224 id = idr_alloc(&shrinker_idr, shrinker, 0, 0, GFP_KERNEL); in shrinker_memcg_alloc()
234 shrinker->id = id; in shrinker_memcg_alloc()
241 static void shrinker_memcg_remove(struct shrinker *shrinker) in shrinker_memcg_remove() argument
243 int id = shrinker->id; in shrinker_memcg_remove()
252 static long xchg_nr_deferred_memcg(int nid, struct shrinker *shrinker, in xchg_nr_deferred_memcg() argument
261 unit = info->unit[shrinker_id_to_index(shrinker->id)]; in xchg_nr_deferred_memcg()
262 nr_deferred = atomic_long_xchg(&unit->nr_deferred[shrinker_id_to_offset(shrinker->id)], 0); in xchg_nr_deferred_memcg()
268 static long add_nr_deferred_memcg(long nr, int nid, struct shrinker *shrinker, in add_nr_deferred_memcg() argument
277 unit = info->unit[shrinker_id_to_index(shrinker->id)]; in add_nr_deferred_memcg()
[all …]
H A Dinternal.h1673 struct shrinker *shrinker, const char *fmt, va_list ap) in shrinker_debugfs_name_alloc() argument
1675 shrinker->name = kvasprintf_const(GFP_KERNEL, fmt, ap); in shrinker_debugfs_name_alloc()
1677 return shrinker->name ? 0 : -ENOMEM; in shrinker_debugfs_name_alloc()
1680 static inline void shrinker_debugfs_name_free(struct shrinker *shrinker) in shrinker_debugfs_name_free() argument
1682 kfree_const(shrinker->name); in shrinker_debugfs_name_free()
1683 shrinker->name = NULL; in shrinker_debugfs_name_free()
1686 extern int shrinker_debugfs_add(struct shrinker *shrinker);
1687 extern struct dentry *shrinker_debugfs_detach(struct shrinker *shrinker,
1692 static inline int shrinker_debugfs_add(struct shrinker *shrinker) in shrinker_debugfs_add() argument
1696 static inline int shrinker_debugfs_name_alloc(struct shrinker *shrinker, in shrinker_debugfs_name_alloc() argument
[all …]
H A Dzswap.c170 static struct shrinker *zswap_shrinker;
1175 static unsigned long zswap_shrinker_scan(struct shrinker *shrinker, in zswap_shrinker_scan() argument
1196 static unsigned long zswap_shrinker_count(struct shrinker *shrinker, in zswap_shrinker_count() argument
1268 static struct shrinker *zswap_alloc_shrinker(void) in zswap_alloc_shrinker()
1270 struct shrinker *shrinker; in zswap_alloc_shrinker() local
1272 shrinker = in zswap_alloc_shrinker()
1274 if (!shrinker) in zswap_alloc_shrinker()
1277 shrinker->scan_objects = zswap_shrinker_scan; in zswap_alloc_shrinker()
1278 shrinker->count_objects = zswap_shrinker_count; in zswap_alloc_shrinker()
1279 shrinker->batch = 0; in zswap_alloc_shrinker()
[all …]
H A Dzsmalloc.c209 struct shrinker *shrinker; member
1972 static unsigned long zs_shrinker_scan(struct shrinker *shrinker, in zs_shrinker_scan() argument
1976 struct zs_pool *pool = shrinker->private_data; in zs_shrinker_scan()
1988 static unsigned long zs_shrinker_count(struct shrinker *shrinker, in zs_shrinker_count() argument
1994 struct zs_pool *pool = shrinker->private_data; in zs_shrinker_count()
2009 shrinker_free(pool->shrinker); in zs_unregister_shrinker()
2014 pool->shrinker = shrinker_alloc(0, "mm-zspool:%s", pool->name); in zs_register_shrinker()
2015 if (!pool->shrinker) in zs_register_shrinker()
2018 pool->shrinker->scan_objects = zs_shrinker_scan; in zs_register_shrinker()
2019 pool->shrinker->count_objects = zs_shrinker_count; in zs_register_shrinker()
[all …]
H A Dworkingset.c640 static unsigned long count_shadow_nodes(struct shrinker *shrinker, in count_shadow_nodes() argument
767 static unsigned long scan_shadow_nodes(struct shrinker *shrinker, in scan_shadow_nodes() argument
783 struct shrinker *workingset_shadow_shrinker; in workingset_init()
H A Dlist_lru.c574 int __list_lru_init(struct list_lru *lru, bool memcg_aware, struct shrinker *shrinker) in __list_lru_init() argument
579 if (shrinker) in __list_lru_init()
580 lru->shrinker_id = shrinker->id; in __list_lru_init()
/linux/drivers/gpu/drm/xe/
H A Dxe_shrinker.c31 struct shrinker *shrink;
35 static struct xe_shrinker *to_xe_shrinker(struct shrinker *shrink) in to_xe_shrinker()
49 xe_shrinker_mod_pages(struct xe_shrinker *shrinker, long shrinkable, long purgeable) in xe_shrinker_mod_pages() argument
51 write_lock(&shrinker->lock); in xe_shrinker_mod_pages()
52 shrinker->shrinkable_pages += shrinkable; in xe_shrinker_mod_pages()
53 shrinker->purgeable_pages += purgeable; in xe_shrinker_mod_pages()
54 write_unlock(&shrinker->lock); in xe_shrinker_mod_pages()
139 xe_shrinker_count(struct shrinker *shrink, struct shrink_control *sc) in xe_shrinker_count()
141 struct xe_shrinker *shrinker = to_xe_shrinker(shrink); in xe_shrinker_count() local
146 read_lock(&shrinker->lock); in xe_shrinker_count()
[all …]
/linux/drivers/gpu/drm/
H A Ddrm_pagemap_util.c32 struct drm_pagemap_shrinker *shrinker; member
55 struct shrinker *shrink;
65 drm_dbg(cache->shrinker->drm, "Destroying dpagemap cache.\n"); in drm_pagemap_cache_fini()
95 struct drm_pagemap_cache *drm_pagemap_cache_create_devm(struct drm_pagemap_shrinker *shrinker) in drm_pagemap_cache_create_devm() argument
105 cache->shrinker = shrinker; in drm_pagemap_cache_create_devm()
107 err = devm_add_action_or_reset(shrinker->drm->dev, drm_pagemap_cache_fini, cache); in drm_pagemap_cache_create_devm()
271 struct drm_pagemap_shrinker *shrinker = cache->shrinker; in drm_pagemap_shrinker_cancel() local
273 spin_lock(&shrinker->lock); in drm_pagemap_shrinker_cancel()
275 spin_unlock(&shrinker->lock); in drm_pagemap_shrinker_cancel()
280 atomic_dec(&shrinker->num_dpagemaps); in drm_pagemap_shrinker_cancel()
[all …]
/linux/include/linux/
H A Dshrinker.h82 struct shrinker { struct
83 unsigned long (*count_objects)(struct shrinker *, argument
85 unsigned long (*scan_objects)(struct shrinker *, argument
135 struct shrinker *shrinker_alloc(unsigned int flags, const char *fmt, ...);
136 void shrinker_register(struct shrinker *shrinker);
137 void shrinker_free(struct shrinker *shrinker);
139 static inline bool shrinker_try_get(struct shrinker *shrinker) in shrinker_try_get() argument
141 return refcount_inc_not_zero(&shrinker->refcount); in shrinker_try_get()
144 static inline void shrinker_put(struct shrinker *shrinker) in shrinker_put() argument
146 if (refcount_dec_and_test(&shrinker->refcount)) in shrinker_put()
[all …]
/linux/drivers/android/binder/
H A Dpage_range.rs43 inner: Opaque<*mut bindings::shrinker>,
81 let shrinker = unsafe { bindings::shrinker_alloc(0, name.as_char_ptr()) }; in register() localVariable
82 if shrinker.is_null() { in register()
91 (&raw mut (*shrinker).count_objects).write(Some(rust_shrink_count)); in register()
92 (&raw mut (*shrinker).scan_objects).write(Some(rust_shrink_scan)); in register()
93 (&raw mut (*shrinker).private_data).write(self.list_lru.get().cast()); in register()
97 unsafe { bindings::shrinker_register(shrinker) }; in register()
100 unsafe { self.inner.get().write(shrinker) }; in register()
128 shrinker: &'static Shrinker, field
225 unsafe fn list_lru_add(me: *mut PageInfo, nid: i32, shrinker: &'static Shrinker) { in list_lru_add()
[all …]
/linux/Documentation/admin-guide/mm/
H A Dshrinker_debugfs.rst9 For each shrinker registered in the system a directory in **<debugfs>/shrinker/**
10 is created. The directory's name is composed from the shrinker's name and an
13 Each shrinker directory contains **count** and **scan** files, which allow to
24 $ cd /sys/kernel/debug/shrinker/
40 2. *Get information about a specific shrinker*
59 If the shrinker is not memcg-aware or CONFIG_MEMCG is off, 0 is printed
60 as cgroup inode id. If the shrinker is not numa-aware, 0's are printed
112 For a non-memcg-aware shrinker or on a system with no memory
116 $ cd /sys/kernel/debug/shrinker/
/linux/tools/cgroup/
H A Dmemcg_shrinker.py27 for shrinker in subdirs:
28 count_path = os.path.join(root, shrinker, "count")
34 shrinkers.append((int(items[1]), shrinker, ino))
/linux/drivers/virtio/
H A Dvirtio_balloon.c114 struct shrinker *shrinker; member
869 static unsigned long virtio_balloon_shrinker_scan(struct shrinker *shrinker, in virtio_balloon_shrinker_scan() argument
872 struct virtio_balloon *vb = shrinker->private_data; in virtio_balloon_shrinker_scan()
877 static unsigned long virtio_balloon_shrinker_count(struct shrinker *shrinker, in virtio_balloon_shrinker_count() argument
880 struct virtio_balloon *vb = shrinker->private_data; in virtio_balloon_shrinker_count()
901 shrinker_free(vb->shrinker); in virtio_balloon_unregister_shrinker()
906 vb->shrinker = shrinker_alloc(0, "virtio-balloon"); in virtio_balloon_register_shrinker()
907 if (!vb->shrinker) in virtio_balloon_register_shrinker()
910 vb->shrinker->scan_objects = virtio_balloon_shrinker_scan; in virtio_balloon_register_shrinker()
911 vb->shrinker->count_objects = virtio_balloon_shrinker_count; in virtio_balloon_register_shrinker()
[all …]
/linux/drivers/misc/
H A Dvmw_balloon.c388 struct shrinker *shrinker; member
1513 static unsigned long vmballoon_shrinker_scan(struct shrinker *shrinker, in vmballoon_shrinker_scan() argument
1555 static unsigned long vmballoon_shrinker_count(struct shrinker *shrinker, in vmballoon_shrinker_count() argument
1565 shrinker_free(b->shrinker); in vmballoon_unregister_shrinker()
1566 b->shrinker = NULL; in vmballoon_unregister_shrinker()
1575 b->shrinker = shrinker_alloc(0, "vmw-balloon"); in vmballoon_register_shrinker()
1576 if (!b->shrinker) in vmballoon_register_shrinker()
1579 b->shrinker->scan_objects = vmballoon_shrinker_scan; in vmballoon_register_shrinker()
1580 b->shrinker->count_objects = vmballoon_shrinker_count; in vmballoon_register_shrinker()
1581 b->shrinker->private_data = b; in vmballoon_register_shrinker()
[all …]
/linux/fs/btrfs/
H A Dcompression.c133 struct shrinker *shrinker; member
140 static unsigned long btrfs_compr_pool_count(struct shrinker *sh, struct shrink_control *sc) in btrfs_compr_pool_count()
154 static unsigned long btrfs_compr_pool_scan(struct shrinker *sh, struct shrink_control *sc) in btrfs_compr_pool_scan()
1135 compr_pool.shrinker = shrinker_alloc(SHRINKER_NONSLAB, "btrfs-compr-pages"); in btrfs_init_compress()
1136 if (!compr_pool.shrinker) in btrfs_init_compress()
1144 compr_pool.shrinker->count_objects = btrfs_compr_pool_count; in btrfs_init_compress()
1145 compr_pool.shrinker->scan_objects = btrfs_compr_pool_scan; in btrfs_init_compress()
1146 compr_pool.shrinker->batch = 32; in btrfs_init_compress()
1147 compr_pool.shrinker->seeks = DEFAULT_SEEKS; in btrfs_init_compress()
1148 shrinker_register(compr_pool.shrinker); in btrfs_init_compress()
[all …]
/linux/drivers/xen/xenbus/
H A Dxenbus_probe_backend.c279 static unsigned long backend_shrink_memory_count(struct shrinker *shrinker, in backend_shrink_memory_count() argument
289 struct shrinker *backend_memory_shrinker; in xenbus_probe_backend_init()
/linux/fs/nfsd/
H A Dnetns.h198 struct shrinker *nfsd_reply_cache_shrinker;
216 struct shrinker *nfsd_client_shrinker;
H A Dnfscache.c41 static unsigned long nfsd_reply_cache_count(struct shrinker *shrink,
43 static unsigned long nfsd_reply_cache_scan(struct shrinker *shrink,
294 nfsd_reply_cache_count(struct shrinker *shrink, struct shrink_control *sc) in nfsd_reply_cache_count()
313 nfsd_reply_cache_scan(struct shrinker *shrink, struct shrink_control *sc) in nfsd_reply_cache_scan()
/linux/fs/erofs/
H A Dzutil.c29 static struct shrinker *erofs_shrinker_info;
242 static unsigned long erofs_shrink_count(struct shrinker *shrink, in erofs_shrink_count()
248 static unsigned long erofs_shrink_scan(struct shrinker *shrink, in erofs_shrink_scan()
/linux/fs/
H A Dmbcache.c40 struct shrinker *c_shrink;
293 static unsigned long mb_cache_count(struct shrinker *shrink, in mb_cache_count()
332 static unsigned long mb_cache_scan(struct shrinker *shrink, in mb_cache_scan()
/linux/fs/ubifs/
H A Dshrinker.c267 unsigned long ubifs_shrink_count(struct shrinker *shrink, in ubifs_shrink_count()
279 unsigned long ubifs_shrink_scan(struct shrinker *shrink, in ubifs_shrink_scan()
H A DMakefile4 ubifs-y += shrinker.o journal.o file.o dir.o super.o sb.o io.o
/linux/fs/f2fs/
H A Dshrinker.c40 unsigned long f2fs_shrink_count(struct shrinker *shrink, in f2fs_shrink_count()
79 unsigned long f2fs_shrink_scan(struct shrinker *shrink, in f2fs_shrink_scan()
H A DMakefile6 f2fs-y += shrinker.o extent_cache.o sysfs.o
/linux/Documentation/gpu/rfc/
H A Di915_gem_lmem.rst15 * TTM shrinker for discrete

123