Home
last modified time | relevance | path

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

123

/Linux-v6.1/include/linux/
Dshrinker.h60 struct shrinker { struct
61 unsigned long (*count_objects)(struct shrinker *, argument
63 unsigned long (*scan_objects)(struct shrinker *, argument
96 extern int __printf(2, 3) prealloc_shrinker(struct shrinker *shrinker,
98 extern void register_shrinker_prepared(struct shrinker *shrinker);
99 extern int __printf(2, 3) register_shrinker(struct shrinker *shrinker,
101 extern void unregister_shrinker(struct shrinker *shrinker);
102 extern void free_prealloced_shrinker(struct shrinker *shrinker);
106 extern int shrinker_debugfs_add(struct shrinker *shrinker);
107 extern void shrinker_debugfs_remove(struct shrinker *shrinker);
[all …]
Dlist_lru.h61 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-v6.1/mm/
Dshrinker_debug.c16 static unsigned long shrinker_count_objects(struct shrinker *shrinker, in shrinker_count_objects() argument
24 if (nid == 0 || (shrinker->flags & SHRINKER_NUMA_AWARE)) { in shrinker_count_objects()
31 nr = shrinker->count_objects(shrinker, &sc); in shrinker_count_objects()
47 struct shrinker *shrinker = m->private; in shrinker_debugfs_count_show() local
65 memcg_aware = shrinker->flags & SHRINKER_MEMCG_AWARE; in shrinker_debugfs_count_show()
72 total = shrinker_count_objects(shrinker, in shrinker_debugfs_count_show()
112 struct shrinker *shrinker = file->private_data; in shrinker_debugfs_scan_write() local
136 if (shrinker->flags & SHRINKER_MEMCG_AWARE) { in shrinker_debugfs_scan_write()
160 shrinker->scan_objects(shrinker, &sc); in shrinker_debugfs_scan_write()
174 int shrinker_debugfs_add(struct shrinker *shrinker) in shrinker_debugfs_add() argument
[all …]
Dvmscan.c367 static int prealloc_memcg_shrinker(struct shrinker *shrinker) in prealloc_memcg_shrinker() argument
376 id = idr_alloc(&shrinker_idr, shrinker, 0, 0, GFP_KERNEL); in prealloc_memcg_shrinker()
386 shrinker->id = id; in prealloc_memcg_shrinker()
393 static void unregister_memcg_shrinker(struct shrinker *shrinker) in unregister_memcg_shrinker() argument
395 int id = shrinker->id; in unregister_memcg_shrinker()
404 static long xchg_nr_deferred_memcg(int nid, struct shrinker *shrinker, in xchg_nr_deferred_memcg() argument
410 return atomic_long_xchg(&info->nr_deferred[shrinker->id], 0); in xchg_nr_deferred_memcg()
413 static long add_nr_deferred_memcg(long nr, int nid, struct shrinker *shrinker, in add_nr_deferred_memcg() argument
419 return atomic_long_add_return(nr, &info->nr_deferred[shrinker->id]); in add_nr_deferred_memcg()
475 static int prealloc_memcg_shrinker(struct shrinker *shrinker) in prealloc_memcg_shrinker() argument
[all …]
Dworkingset.c569 static unsigned long count_shadow_nodes(struct shrinker *shrinker, in count_shadow_nodes() argument
692 static unsigned long scan_shadow_nodes(struct shrinker *shrinker, in scan_shadow_nodes() argument
700 static struct shrinker workingset_shadow_shrinker = {
Dzsmalloc.c242 struct shrinker shrinker; member
2129 static unsigned long zs_shrinker_scan(struct shrinker *shrinker, in zs_shrinker_scan() argument
2133 struct zs_pool *pool = container_of(shrinker, struct zs_pool, in zs_shrinker_scan()
2134 shrinker); in zs_shrinker_scan()
2146 static unsigned long zs_shrinker_count(struct shrinker *shrinker, in zs_shrinker_count() argument
2152 struct zs_pool *pool = container_of(shrinker, struct zs_pool, in zs_shrinker_count()
2153 shrinker); in zs_shrinker_count()
2168 unregister_shrinker(&pool->shrinker); in zs_unregister_shrinker()
2173 pool->shrinker.scan_objects = zs_shrinker_scan; in zs_register_shrinker()
2174 pool->shrinker.count_objects = zs_shrinker_count; in zs_register_shrinker()
[all …]
Dlist_lru.c560 struct lock_class_key *key, struct shrinker *shrinker) in __list_lru_init() argument
565 if (shrinker) in __list_lru_init()
566 lru->shrinker_id = shrinker->id; in __list_lru_init()
/Linux-v6.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
22 container_of(shrinker, struct panfrost_device, shrinker); in panfrost_gem_shrinker_count()
66 panfrost_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) in panfrost_gem_shrinker_scan() argument
69 container_of(shrinker, struct panfrost_device, shrinker); in panfrost_gem_shrinker_scan()
103 pfdev->shrinker.count_objects = panfrost_gem_shrinker_count; in panfrost_gem_shrinker_init()
104 pfdev->shrinker.scan_objects = panfrost_gem_shrinker_scan; in panfrost_gem_shrinker_init()
105 pfdev->shrinker.seeks = DEFAULT_SEEKS; in panfrost_gem_shrinker_init()
106 WARN_ON(register_shrinker(&pfdev->shrinker, "drm-panfrost")); in panfrost_gem_shrinker_init()
119 if (pfdev->shrinker.nr_deferred) { in panfrost_gem_shrinker_cleanup()
120 unregister_shrinker(&pfdev->shrinker); in panfrost_gem_shrinker_cleanup()
Dpanfrost_device.h120 struct shrinker shrinker; member
/Linux-v6.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
38 container_of(shrinker, struct msm_drm_private, shrinker); in msm_gem_shrinker_count()
101 msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) in msm_gem_shrinker_scan() argument
104 container_of(shrinker, struct msm_drm_private, shrinker); in msm_gem_shrinker_scan()
149 ret = msm_gem_shrinker_scan(&priv->shrinker, &sc); in msm_gem_shrinker_shrink()
209 priv->shrinker.count_objects = msm_gem_shrinker_count; in msm_gem_shrinker_init()
210 priv->shrinker.scan_objects = msm_gem_shrinker_scan; in msm_gem_shrinker_init()
211 priv->shrinker.seeks = DEFAULT_SEEKS; in msm_gem_shrinker_init()
212 WARN_ON(register_shrinker(&priv->shrinker, "drm-msm_gem")); in msm_gem_shrinker_init()
228 if (priv->shrinker.nr_deferred) { in msm_gem_shrinker_cleanup()
[all …]
/Linux-v6.1/drivers/gpu/drm/i915/gem/
Di915_gem_shrinker.c285 i915_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc) in i915_gem_shrinker_count() argument
288 container_of(shrinker, struct drm_i915_private, mm.shrinker); in i915_gem_shrinker_count()
305 i915->mm.shrinker.batch = in i915_gem_shrinker_count()
306 max((i915->mm.shrinker.batch + avg) >> 1, in i915_gem_shrinker_count()
314 i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) in i915_gem_shrinker_scan() argument
317 container_of(shrinker, struct drm_i915_private, mm.shrinker); in i915_gem_shrinker_scan()
425 i915->mm.shrinker.scan_objects = i915_gem_shrinker_scan; in i915_gem_driver_register__shrinker()
426 i915->mm.shrinker.count_objects = i915_gem_shrinker_count; in i915_gem_driver_register__shrinker()
427 i915->mm.shrinker.seeks = DEFAULT_SEEKS; in i915_gem_driver_register__shrinker()
428 i915->mm.shrinker.batch = 4096; in i915_gem_driver_register__shrinker()
[all …]
/Linux-v6.1/Documentation/admin-guide/mm/
Dshrinker_debugfs.rst11 For each shrinker registered in the system a directory in **<debugfs>/shrinker/**
12 is created. The directory's name is composed from the shrinker's name and an
15 Each shrinker directory contains **count** and **scan** files, which allow to
26 $ cd /sys/kernel/debug/shrinker/
42 2. *Get information about a specific shrinker*
61 If the shrinker is not memcg-aware or CONFIG_MEMCG is off, 0 is printed
62 as cgroup inode id. If the shrinker is not numa-aware, 0's are printed
114 For a non-memcg-aware shrinker or on a system with no memory
118 $ cd /sys/kernel/debug/shrinker/
/Linux-v6.1/tools/cgroup/
Dmemcg_shrinker.py28 for shrinker in subdirs:
29 count_path = os.path.join(root, shrinker, "count")
35 shrinkers.append((int(items[1]), shrinker, ino))
/Linux-v6.1/drivers/virtio/
Dvirtio_balloon.c114 struct shrinker shrinker; member
816 static unsigned long virtio_balloon_shrinker_scan(struct shrinker *shrinker, in virtio_balloon_shrinker_scan() argument
819 struct virtio_balloon *vb = container_of(shrinker, in virtio_balloon_shrinker_scan()
820 struct virtio_balloon, shrinker); in virtio_balloon_shrinker_scan()
825 static unsigned long virtio_balloon_shrinker_count(struct shrinker *shrinker, in virtio_balloon_shrinker_count() argument
828 struct virtio_balloon *vb = container_of(shrinker, in virtio_balloon_shrinker_count()
829 struct virtio_balloon, shrinker); in virtio_balloon_shrinker_count()
850 unregister_shrinker(&vb->shrinker); in virtio_balloon_unregister_shrinker()
855 vb->shrinker.scan_objects = virtio_balloon_shrinker_scan; in virtio_balloon_register_shrinker()
856 vb->shrinker.count_objects = virtio_balloon_shrinker_count; in virtio_balloon_register_shrinker()
[all …]
/Linux-v6.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 = {
806 static struct shrinker nfs4_xattr_entry_shrinker = {
814 static struct shrinker nfs4_xattr_large_entry_shrinker = {
858 nfs4_xattr_cache_scan(struct shrinker *shrink, struct shrink_control *sc) in nfs4_xattr_cache_scan()
879 nfs4_xattr_cache_count(struct shrinker *shrink, struct shrink_control *sc) in nfs4_xattr_cache_count()
939 nfs4_xattr_entry_scan(struct shrinker *shrink, struct shrink_control *sc) in nfs4_xattr_entry_scan()
[all …]
/Linux-v6.1/drivers/misc/
Dvmw_balloon.c383 struct shrinker shrinker; member
1519 static unsigned long vmballoon_shrinker_scan(struct shrinker *shrinker, in vmballoon_shrinker_scan() argument
1561 static unsigned long vmballoon_shrinker_count(struct shrinker *shrinker, in vmballoon_shrinker_count() argument
1572 unregister_shrinker(&b->shrinker); in vmballoon_unregister_shrinker()
1584 b->shrinker.scan_objects = vmballoon_shrinker_scan; in vmballoon_register_shrinker()
1585 b->shrinker.count_objects = vmballoon_shrinker_count; in vmballoon_register_shrinker()
1586 b->shrinker.seeks = DEFAULT_SEEKS; in vmballoon_register_shrinker()
1588 r = register_shrinker(&b->shrinker, "vmw-balloon"); in vmballoon_register_shrinker()
/Linux-v6.1/fs/nfsd/
Dnetns.h179 struct shrinker nfsd_reply_cache_shrinker;
197 struct shrinker nfsd_client_shrinker;
Dnfscache.c41 static unsigned long nfsd_reply_cache_count(struct shrinker *shrink,
43 static unsigned long nfsd_reply_cache_scan(struct shrinker *shrink,
298 nfsd_reply_cache_count(struct shrinker *shrink, struct shrink_control *sc) in nfsd_reply_cache_count()
307 nfsd_reply_cache_scan(struct shrinker *shrink, struct shrink_control *sc) in nfsd_reply_cache_scan()
/Linux-v6.1/drivers/xen/xenbus/
Dxenbus_probe_backend.c279 static unsigned long backend_shrink_memory_count(struct shrinker *shrinker, in backend_shrink_memory_count() argument
287 static struct shrinker backend_memory_shrinker = {
/Linux-v6.1/fs/erofs/
Dutils.c216 static unsigned long erofs_shrink_count(struct shrinker *shrink, in erofs_shrink_count()
222 static unsigned long erofs_shrink_scan(struct shrinker *shrink, in erofs_shrink_scan()
277 static struct shrinker erofs_shrinker_info = {
/Linux-v6.1/fs/f2fs/
Dshrinker.c37 unsigned long f2fs_shrink_count(struct shrinker *shrink, in f2fs_shrink_count()
73 unsigned long f2fs_shrink_scan(struct shrinker *shrink, in f2fs_shrink_scan()
/Linux-v6.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-v6.1/fs/
Dmbcache.c40 struct shrinker c_shrink;
291 static unsigned long mb_cache_count(struct shrinker *shrink, in mb_cache_count()
331 static unsigned long mb_cache_scan(struct shrinker *shrink, in mb_cache_scan()
/Linux-v6.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-v6.1/drivers/md/
Ddm-bufio.c114 struct shrinker shrinker; member
1702 static unsigned long dm_bufio_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) in dm_bufio_shrink_scan()
1706 c = container_of(shrink, struct dm_bufio_client, shrinker); in dm_bufio_shrink_scan()
1713 static unsigned long dm_bufio_shrink_count(struct shrinker *shrink, struct shrink_control *sc) in dm_bufio_shrink_count()
1715 struct dm_bufio_client *c = container_of(shrink, struct dm_bufio_client, shrinker); in dm_bufio_shrink_count()
1832 c->shrinker.count_objects = dm_bufio_shrink_count; in dm_bufio_client_create()
1833 c->shrinker.scan_objects = dm_bufio_shrink_scan; in dm_bufio_client_create()
1834 c->shrinker.seeks = 1; in dm_bufio_client_create()
1835 c->shrinker.batch = 0; in dm_bufio_client_create()
1836 r = register_shrinker(&c->shrinker, "md-%s:(%u:%u)", slab_name, in dm_bufio_client_create()
[all …]

123