Home
last modified time | relevance | path

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

1234

/linux-6.12.1/mm/
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 …]
Dshrinker_debug.c18 static unsigned long shrinker_count_objects(struct shrinker *shrinker, in shrinker_count_objects() argument
26 if (nid == 0 || (shrinker->flags & SHRINKER_NUMA_AWARE)) { in shrinker_count_objects()
33 nr = shrinker->count_objects(shrinker, &sc); in shrinker_count_objects()
49 struct shrinker *shrinker = m->private; in shrinker_debugfs_count_show() local
62 memcg_aware = shrinker->flags & SHRINKER_MEMCG_AWARE; in shrinker_debugfs_count_show()
69 total = shrinker_count_objects(shrinker, in shrinker_debugfs_count_show()
108 struct shrinker *shrinker = file->private_data; in shrinker_debugfs_scan_write() local
131 if (shrinker->flags & SHRINKER_MEMCG_AWARE) { in shrinker_debugfs_scan_write()
149 shrinker->scan_objects(shrinker, &sc); in shrinker_debugfs_scan_write()
162 int shrinker_debugfs_add(struct shrinker *shrinker) in shrinker_debugfs_add() argument
[all …]
Dinternal.h1430 struct shrinker *shrinker, const char *fmt, va_list ap) in shrinker_debugfs_name_alloc() argument
1432 shrinker->name = kvasprintf_const(GFP_KERNEL, fmt, ap); in shrinker_debugfs_name_alloc()
1434 return shrinker->name ? 0 : -ENOMEM; in shrinker_debugfs_name_alloc()
1437 static inline void shrinker_debugfs_name_free(struct shrinker *shrinker) in shrinker_debugfs_name_free() argument
1439 kfree_const(shrinker->name); in shrinker_debugfs_name_free()
1440 shrinker->name = NULL; in shrinker_debugfs_name_free()
1443 extern int shrinker_debugfs_add(struct shrinker *shrinker);
1444 extern struct dentry *shrinker_debugfs_detach(struct shrinker *shrinker,
1449 static inline int shrinker_debugfs_add(struct shrinker *shrinker) in shrinker_debugfs_add() argument
1453 static inline int shrinker_debugfs_name_alloc(struct shrinker *shrinker, in shrinker_debugfs_name_alloc() argument
[all …]
Dzswap.c176 static struct shrinker *zswap_shrinker;
1180 static unsigned long zswap_shrinker_scan(struct shrinker *shrinker, in zswap_shrinker_scan() argument
1201 static unsigned long zswap_shrinker_count(struct shrinker *shrinker, in zswap_shrinker_count() argument
1273 static struct shrinker *zswap_alloc_shrinker(void) in zswap_alloc_shrinker()
1275 struct shrinker *shrinker; in zswap_alloc_shrinker() local
1277 shrinker = in zswap_alloc_shrinker()
1279 if (!shrinker) in zswap_alloc_shrinker()
1282 shrinker->scan_objects = zswap_shrinker_scan; in zswap_alloc_shrinker()
1283 shrinker->count_objects = zswap_shrinker_count; in zswap_alloc_shrinker()
1284 shrinker->batch = 0; in zswap_alloc_shrinker()
[all …]
Dzsmalloc.c233 struct shrinker *shrinker; member
2036 static unsigned long zs_shrinker_scan(struct shrinker *shrinker, in zs_shrinker_scan() argument
2040 struct zs_pool *pool = shrinker->private_data; in zs_shrinker_scan()
2052 static unsigned long zs_shrinker_count(struct shrinker *shrinker, in zs_shrinker_count() argument
2058 struct zs_pool *pool = shrinker->private_data; in zs_shrinker_count()
2073 shrinker_free(pool->shrinker); in zs_unregister_shrinker()
2078 pool->shrinker = shrinker_alloc(0, "mm-zspool:%s", pool->name); in zs_register_shrinker()
2079 if (!pool->shrinker) in zs_register_shrinker()
2082 pool->shrinker->scan_objects = zs_shrinker_scan; in zs_register_shrinker()
2083 pool->shrinker->count_objects = zs_shrinker_count; in zs_register_shrinker()
[all …]
Dworkingset.c655 static unsigned long count_shadow_nodes(struct shrinker *shrinker, in count_shadow_nodes() argument
784 static unsigned long scan_shadow_nodes(struct shrinker *shrinker, in scan_shadow_nodes() argument
800 struct shrinker *workingset_shadow_shrinker; in workingset_init()
/linux-6.12.1/include/linux/
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 …]
Dlist_lru.h63 struct lock_class_key *key, struct shrinker *shrinker);
67 #define list_lru_init_memcg(lru, shrinker) \ argument
68 __list_lru_init((lru), true, NULL, shrinker)
/linux-6.12.1/drivers/gpu/drm/panfrost/
Dpanfrost_gem_shrinker.c19 panfrost_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc) in panfrost_gem_shrinker_count() argument
21 struct panfrost_device *pfdev = shrinker->private_data; in panfrost_gem_shrinker_count()
65 panfrost_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) in panfrost_gem_shrinker_scan() argument
67 struct panfrost_device *pfdev = shrinker->private_data; in panfrost_gem_shrinker_scan()
102 pfdev->shrinker = shrinker_alloc(0, "drm-panfrost"); in panfrost_gem_shrinker_init()
103 if (!pfdev->shrinker) in panfrost_gem_shrinker_init()
106 pfdev->shrinker->count_objects = panfrost_gem_shrinker_count; in panfrost_gem_shrinker_init()
107 pfdev->shrinker->scan_objects = panfrost_gem_shrinker_scan; in panfrost_gem_shrinker_init()
108 pfdev->shrinker->private_data = pfdev; in panfrost_gem_shrinker_init()
110 shrinker_register(pfdev->shrinker); in panfrost_gem_shrinker_init()
[all …]
Dpanfrost_device.h145 struct shrinker *shrinker; member
/linux-6.12.1/drivers/gpu/drm/msm/
Dmsm_gem_shrinker.c35 msm_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc) in msm_gem_shrinker_count() argument
37 struct msm_drm_private *priv = shrinker->private_data; in msm_gem_shrinker_count()
100 msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) in msm_gem_shrinker_scan() argument
102 struct msm_drm_private *priv = shrinker->private_data; in msm_gem_shrinker_scan()
152 if (priv->shrinker) in msm_gem_shrinker_shrink()
153 ret = msm_gem_shrinker_scan(priv->shrinker, &sc); in msm_gem_shrinker_shrink()
216 priv->shrinker = shrinker_alloc(0, "drm-msm_gem"); in msm_gem_shrinker_init()
217 if (!priv->shrinker) in msm_gem_shrinker_init()
220 priv->shrinker->count_objects = msm_gem_shrinker_count; in msm_gem_shrinker_init()
221 priv->shrinker->scan_objects = msm_gem_shrinker_scan; in msm_gem_shrinker_init()
[all …]
/linux-6.12.1/drivers/gpu/drm/i915/gem/
Di915_gem_shrinker.c289 i915_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc) in i915_gem_shrinker_count() argument
291 struct drm_i915_private *i915 = shrinker->private_data; in i915_gem_shrinker_count()
308 i915->mm.shrinker->batch = in i915_gem_shrinker_count()
309 max((i915->mm.shrinker->batch + avg) >> 1, in i915_gem_shrinker_count()
317 i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) in i915_gem_shrinker_scan() argument
319 struct drm_i915_private *i915 = shrinker->private_data; in i915_gem_shrinker_scan()
431 i915->mm.shrinker = shrinker_alloc(0, "drm-i915_gem"); in i915_gem_driver_register__shrinker()
432 if (!i915->mm.shrinker) { in i915_gem_driver_register__shrinker()
435 i915->mm.shrinker->scan_objects = i915_gem_shrinker_scan; in i915_gem_driver_register__shrinker()
436 i915->mm.shrinker->count_objects = i915_gem_shrinker_count; in i915_gem_driver_register__shrinker()
[all …]
/linux-6.12.1/fs/nfs/
Dnfs42xattr.c790 static unsigned long nfs4_xattr_cache_count(struct shrinker *shrink,
792 static unsigned long nfs4_xattr_entry_count(struct shrinker *shrink,
794 static unsigned long nfs4_xattr_cache_scan(struct shrinker *shrink,
796 static unsigned long nfs4_xattr_entry_scan(struct shrinker *shrink,
799 static struct shrinker *nfs4_xattr_cache_shrinker;
800 static struct shrinker *nfs4_xattr_entry_shrinker;
801 static struct shrinker *nfs4_xattr_large_entry_shrinker;
839 nfs4_xattr_cache_scan(struct shrinker *shrink, struct shrink_control *sc) in nfs4_xattr_cache_scan()
860 nfs4_xattr_cache_count(struct shrinker *shrink, struct shrink_control *sc) in nfs4_xattr_cache_count()
920 nfs4_xattr_entry_scan(struct shrinker *shrink, struct shrink_control *sc) in nfs4_xattr_entry_scan()
[all …]
/linux-6.12.1/Documentation/admin-guide/mm/
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-6.12.1/tools/cgroup/
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-6.12.1/drivers/virtio/
Dvirtio_balloon.c114 struct shrinker *shrinker; member
897 static unsigned long virtio_balloon_shrinker_scan(struct shrinker *shrinker, in virtio_balloon_shrinker_scan() argument
900 struct virtio_balloon *vb = shrinker->private_data; in virtio_balloon_shrinker_scan()
905 static unsigned long virtio_balloon_shrinker_count(struct shrinker *shrinker, in virtio_balloon_shrinker_count() argument
908 struct virtio_balloon *vb = shrinker->private_data; in virtio_balloon_shrinker_count()
929 shrinker_free(vb->shrinker); in virtio_balloon_unregister_shrinker()
934 vb->shrinker = shrinker_alloc(0, "virtio-balloon"); in virtio_balloon_register_shrinker()
935 if (!vb->shrinker) in virtio_balloon_register_shrinker()
938 vb->shrinker->scan_objects = virtio_balloon_shrinker_scan; in virtio_balloon_register_shrinker()
939 vb->shrinker->count_objects = virtio_balloon_shrinker_count; in virtio_balloon_register_shrinker()
[all …]
/linux-6.12.1/drivers/misc/
Dvmw_balloon.c383 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-6.12.1/fs/btrfs/
Dcompression.c174 struct shrinker *shrinker; member
181 static unsigned long btrfs_compr_pool_count(struct shrinker *sh, struct shrink_control *sc) in btrfs_compr_pool_count()
195 static unsigned long btrfs_compr_pool_scan(struct shrinker *sh, struct shrink_control *sc) in btrfs_compr_pool_scan()
1094 compr_pool.shrinker = shrinker_alloc(SHRINKER_NONSLAB, "btrfs-compr-pages"); in btrfs_init_compress()
1095 if (!compr_pool.shrinker) in btrfs_init_compress()
1108 compr_pool.shrinker->count_objects = btrfs_compr_pool_count; in btrfs_init_compress()
1109 compr_pool.shrinker->scan_objects = btrfs_compr_pool_scan; in btrfs_init_compress()
1110 compr_pool.shrinker->batch = 32; in btrfs_init_compress()
1111 compr_pool.shrinker->seeks = DEFAULT_SEEKS; in btrfs_init_compress()
1112 shrinker_register(compr_pool.shrinker); in btrfs_init_compress()
[all …]
/linux-6.12.1/drivers/xen/xenbus/
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-6.12.1/fs/nfsd/
Dnetns.h196 struct shrinker *nfsd_reply_cache_shrinker;
214 struct shrinker *nfsd_client_shrinker;
/linux-6.12.1/fs/f2fs/
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()
/linux-6.12.1/include/trace/events/
Dvmscan.h200 TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
209 __field(struct shrinker *, shr)
245 TP_PROTO(struct shrinker *shr, int nid, int shrinker_retval,
252 __field(struct shrinker *, shr)
/linux-6.12.1/fs/
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-6.12.1/fs/ubifs/
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()
/linux-6.12.1/fs/bcachefs/
Dbtree_key_cache_types.h11 struct shrinker *shrink;

1234