| /linux/mm/ |
| H A D | shrinker.c | 216 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 D | internal.h | 1593 struct shrinker *shrinker, const char *fmt, va_list ap) in shrinker_debugfs_name_alloc() argument 1595 shrinker->name = kvasprintf_const(GFP_KERNEL, fmt, ap); in shrinker_debugfs_name_alloc() 1597 return shrinker->name ? 0 : -ENOMEM; in shrinker_debugfs_name_alloc() 1600 static inline void shrinker_debugfs_name_free(struct shrinker *shrinker) in shrinker_debugfs_name_free() argument 1602 kfree_const(shrinker->name); in shrinker_debugfs_name_free() 1603 shrinker->name = NULL; in shrinker_debugfs_name_free() 1606 extern int shrinker_debugfs_add(struct shrinker *shrinker); 1607 extern struct dentry *shrinker_debugfs_detach(struct shrinker *shrinker, 1612 static inline int shrinker_debugfs_add(struct shrinker *shrinker) in shrinker_debugfs_add() argument 1616 static inline int shrinker_debugfs_name_alloc(struct shrinker *shrinker, in shrinker_debugfs_name_alloc() argument [all …]
|
| H A D | zswap.c | 170 static struct shrinker *zswap_shrinker; 1187 static unsigned long zswap_shrinker_scan(struct shrinker *shrinker, in zswap_shrinker_scan() argument 1208 static unsigned long zswap_shrinker_count(struct shrinker *shrinker, in zswap_shrinker_count() argument 1280 static struct shrinker *zswap_alloc_shrinker(void) in zswap_alloc_shrinker() 1282 struct shrinker *shrinker; in zswap_alloc_shrinker() local 1284 shrinker = in zswap_alloc_shrinker() 1286 if (!shrinker) in zswap_alloc_shrinker() 1289 shrinker->scan_objects = zswap_shrinker_scan; in zswap_alloc_shrinker() 1290 shrinker->count_objects = zswap_shrinker_count; in zswap_alloc_shrinker() 1291 shrinker->batch = 0; in zswap_alloc_shrinker() [all …]
|
| H A D | zsmalloc.c | 207 struct shrinker *shrinker; member 1939 static unsigned long zs_shrinker_scan(struct shrinker *shrinker, in zs_shrinker_scan() argument 1943 struct zs_pool *pool = shrinker->private_data; in zs_shrinker_scan() 1955 static unsigned long zs_shrinker_count(struct shrinker *shrinker, in zs_shrinker_count() argument 1961 struct zs_pool *pool = shrinker->private_data; in zs_shrinker_count() 1976 shrinker_free(pool->shrinker); in zs_unregister_shrinker() 1981 pool->shrinker = shrinker_alloc(0, "mm-zspool:%s", pool->name); in zs_register_shrinker() 1982 if (!pool->shrinker) in zs_register_shrinker() 1985 pool->shrinker->scan_objects = zs_shrinker_scan; in zs_register_shrinker() 1986 pool->shrinker->count_objects = zs_shrinker_count; in zs_register_shrinker() [all …]
|
| H A D | workingset.c | 640 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()
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_shrinker.c | 31 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/include/linux/ |
| H A D | shrinker.h | 82 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 D | page_range.rs | 43 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 D | shrinker_debugfs.rst | 9 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 D | memcg_shrinker.py | 27 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 D | virtio_balloon.c | 114 struct shrinker *shrinker; member 893 static unsigned long virtio_balloon_shrinker_scan(struct shrinker *shrinker, in virtio_balloon_shrinker_scan() argument 896 struct virtio_balloon *vb = shrinker->private_data; in virtio_balloon_shrinker_scan() 901 static unsigned long virtio_balloon_shrinker_count(struct shrinker *shrinker, in virtio_balloon_shrinker_count() argument 904 struct virtio_balloon *vb = shrinker->private_data; in virtio_balloon_shrinker_count() 925 shrinker_free(vb->shrinker); in virtio_balloon_unregister_shrinker() 930 vb->shrinker = shrinker_alloc(0, "virtio-balloon"); in virtio_balloon_register_shrinker() 931 if (!vb->shrinker) in virtio_balloon_register_shrinker() 934 vb->shrinker->scan_objects = virtio_balloon_shrinker_scan; in virtio_balloon_register_shrinker() 935 vb->shrinker->count_objects = virtio_balloon_shrinker_count; in virtio_balloon_register_shrinker() [all …]
|
| /linux/drivers/misc/ |
| H A D | vmw_balloon.c | 383 struct shrinker *shrinker; member 1510 static unsigned long vmballoon_shrinker_scan(struct shrinker *shrinker, in vmballoon_shrinker_scan() argument 1552 static unsigned long vmballoon_shrinker_count(struct shrinker *shrinker, in vmballoon_shrinker_count() argument 1562 shrinker_free(b->shrinker); in vmballoon_unregister_shrinker() 1563 b->shrinker = NULL; in vmballoon_unregister_shrinker() 1572 b->shrinker = shrinker_alloc(0, "vmw-balloon"); in vmballoon_register_shrinker() 1573 if (!b->shrinker) in vmballoon_register_shrinker() 1576 b->shrinker->scan_objects = vmballoon_shrinker_scan; in vmballoon_register_shrinker() 1577 b->shrinker->count_objects = vmballoon_shrinker_count; in vmballoon_register_shrinker() 1578 b->shrinker->private_data = b; in vmballoon_register_shrinker() [all …]
|
| /linux/drivers/xen/xenbus/ |
| H A D | xenbus_probe_backend.c | 279 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/btrfs/ |
| H A D | compression.c | 172 struct shrinker *shrinker; member 179 static unsigned long btrfs_compr_pool_count(struct shrinker *sh, struct shrink_control *sc) in btrfs_compr_pool_count() 193 static unsigned long btrfs_compr_pool_scan(struct shrinker *sh, struct shrink_control *sc) in btrfs_compr_pool_scan() 1150 compr_pool.shrinker = shrinker_alloc(SHRINKER_NONSLAB, "btrfs-compr-pages"); in btrfs_init_compress() 1151 if (!compr_pool.shrinker) in btrfs_init_compress() 1159 compr_pool.shrinker->count_objects = btrfs_compr_pool_count; in btrfs_init_compress() 1160 compr_pool.shrinker->scan_objects = btrfs_compr_pool_scan; in btrfs_init_compress() 1161 compr_pool.shrinker->batch = 32; in btrfs_init_compress() 1162 compr_pool.shrinker->seeks = DEFAULT_SEEKS; in btrfs_init_compress() 1163 shrinker_register(compr_pool.shrinker); in btrfs_init_compress() [all …]
|
| /linux/fs/nfsd/ |
| H A D | netns.h | 193 struct shrinker *nfsd_reply_cache_shrinker; 211 struct shrinker *nfsd_client_shrinker;
|
| H A D | nfscache.c | 41 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 D | zutil.c | 29 static struct shrinker *erofs_shrinker_info; 243 static unsigned long erofs_shrink_count(struct shrinker *shrink, in erofs_shrink_count() 249 static unsigned long erofs_shrink_scan(struct shrinker *shrink, in erofs_shrink_scan()
|
| /linux/fs/ |
| H A D | mbcache.c | 40 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 D | shrinker.c | 267 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 D | Makefile | 4 ubifs-y += shrinker.o journal.o file.o dir.o super.o sb.o io.o
|
| /linux/fs/f2fs/ |
| H A D | shrinker.c | 40 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 D | Makefile | 6 f2fs-y += shrinker.o extent_cache.o sysfs.o
|
| /linux/include/linux/fs/ |
| H A D | super_types.h | 32 struct shrinker; 225 struct shrinker *s_shrink; /* per-sb shrinker handle */
|
| /linux/drivers/md/ |
| H A D | dm-bufio.c | 994 struct shrinker *shrinker; member 2437 static unsigned long dm_bufio_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) in dm_bufio_shrink_scan() 2448 static unsigned long dm_bufio_shrink_count(struct shrinker *shrink, struct shrink_control *sc) in dm_bufio_shrink_count() 2566 c->shrinker = shrinker_alloc(0, "dm-bufio:(%u:%u)", in dm_bufio_client_create() 2568 if (!c->shrinker) { in dm_bufio_client_create() 2573 c->shrinker->count_objects = dm_bufio_shrink_count; in dm_bufio_client_create() 2574 c->shrinker->scan_objects = dm_bufio_shrink_scan; in dm_bufio_client_create() 2575 c->shrinker->seeks = 1; in dm_bufio_client_create() 2576 c->shrinker->batch = 0; in dm_bufio_client_create() 2577 c->shrinker->private_data = c; in dm_bufio_client_create() [all …]
|
| /linux/Documentation/gpu/rfc/ |
| H A D | i915_gem_lmem.rst | 15 * TTM shrinker for discrete
|