Home
last modified time | relevance | path

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

12

/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()
91 struct drm_pagemap_cache *drm_pagemap_cache_create_devm(struct drm_pagemap_shrinker *shrinker) in drm_pagemap_cache_create_devm() argument
101 cache->shrinker = shrinker; in drm_pagemap_cache_create_devm()
103 err = devm_add_action_or_reset(shrinker->drm->dev, drm_pagemap_cache_fini, cache); in drm_pagemap_cache_create_devm()
267 struct drm_pagemap_shrinker *shrinker = cache->shrinker; in drm_pagemap_shrinker_cancel() local
269 spin_lock(&shrinker->lock); in drm_pagemap_shrinker_cancel()
271 spin_unlock(&shrinker->lock); in drm_pagemap_shrinker_cancel()
276 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/gpu/drm/msm/
H A Dmsm_gem_shrinker.c34 msm_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc) in msm_gem_shrinker_count() argument
36 struct msm_drm_private *priv = shrinker->private_data; in msm_gem_shrinker_count()
154 msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) in msm_gem_shrinker_scan() argument
156 struct msm_drm_private *priv = shrinker->private_data; in msm_gem_shrinker_scan()
210 if (priv->shrinker) in msm_gem_shrinker_shrink()
211 ret = msm_gem_shrinker_scan(priv->shrinker, &sc); in msm_gem_shrinker_shrink()
275 priv->shrinker = shrinker_alloc(0, "drm-msm_gem"); in msm_gem_shrinker_init()
276 if (!priv->shrinker) in msm_gem_shrinker_init()
279 priv->shrinker->count_objects = msm_gem_shrinker_count; in msm_gem_shrinker_init()
280 priv->shrinker->scan_objects = msm_gem_shrinker_scan; in msm_gem_shrinker_init()
[all …]
H A Dmsm_drv.h115 * The dontneed LRU is considered by the shrinker for objects
154 struct shrinker *shrinker;
156 struct shrinker *shrinker; global() member
/linux/drivers/android/binder/
H A Dpage_range.rs6 //! vma shrinker.
14 // The shrinker will use trylock methods because it locks them in a different order.
40 /// Represents a shrinker that can be registered with the kernel.
42 /// Each shrinker can be used by many `ShrinkablePageRange` objects.
45 inner: Opaque<*mut bindings::shrinker>,
49 // SAFETY: The shrinker and list_lru are thread safe.
51 // SAFETY: The shrinker and list_lru are thread safe.
55 /// Create a new shrinker.
59 /// Before using this shrinker with a `ShrinkablePageRange`, the `register` method must have
68 /// Register this shrinker wit
83 let shrinker = unsafe { bindings::shrinker_alloc(0, name.as_char_ptr()) }; register() localVariable
130 shrinker: &'static Shrinker, global() field
662 rust_shrink_count( shrink: *mut bindings::shrinker, _sc: *mut bindings::shrink_control, ) -> c_ulong rust_shrink_count() argument
675 rust_shrink_scan( shrink: *mut bindings::shrinker, sc: *mut bindings::shrink_control, ) -> c_ulong rust_shrink_scan() argument
[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/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/mm/
H A Dzswap.c120 /* Enable/disable memory pressure-based shrinker. */
170 static struct shrinker *zswap_shrinker;
183 * logic if referenced is unset. See comments in the shrinker
723 * Since the global shrinker shrink_worker() may hold a reference
732 /* lock out zswap shrinker walking memcg tree */ in zswap_memcg_offline_cleanup()
1011 * hot, so skip it. For the unlikely concurrent shrinker case, in zswap_writeback_entry()
1064 * shrinker functions in zswap_writeback_entry()
1067 * The dynamic shrinker is modulated by the following factors:
1069 * 1. Each zswap entry has a referenced bit, which the shrinker unsets (giving
1071 * entry is considered again by the shrinker, wit
1174 zswap_shrinker_scan(struct shrinker * shrinker,struct shrink_control * sc) zswap_shrinker_scan() argument
1195 zswap_shrinker_count(struct shrinker * shrinker,struct shrink_control * sc) zswap_shrinker_count() argument
1269 struct shrinker *shrinker; zswap_alloc_shrinker() local
[all...]
H A Dhuge_memory.c18 #include <linux/shrinker.h>
73 static struct shrinker *deferred_split_shrinker;
74 static unsigned long deferred_split_count(struct shrinker *shrink,
76 static unsigned long deferred_split_scan(struct shrinker *shrink,
248 /* We take additional reference here. It will be put back by shrinker */ in get_huge_zero_folio()
258 * Counter should never go to zero here. Only shrinker can put in put_huge_zero_folio()
290 static unsigned long shrink_huge_zero_folio_count(struct shrinker *shrink, in shrink_huge_zero_folio_count()
297 static unsigned long shrink_huge_zero_folio_scan(struct shrinker *shrink, in shrink_huge_zero_folio_scan()
311 static struct shrinker *huge_zero_folio_shrinker; in enabled_show()
978 * initialize the shrinker in hugepage_init()
[all...]
H A Dslab_common.c1298 // A page shrinker can ask for pages to be freed to make them
1304 // interference with the shrinker while it asks other systems to
2128 kfree_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc) in kfree_rcu_shrink_count()
2146 kfree_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) in kfree_rcu_shrink_scan()
2172 struct shrinker *kfree_rcu_shrinker; in kvfree_rcu_init()
2211 pr_err("Failed to allocate kfree_rcu() shrinker!\n"); in kvfree_rcu_init()
/linux/fs/btrfs/
H A Dcompression.c23 #include <linux/shrinker.h>
133 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()
1146 compr_pool.shrinker = shrinker_alloc(SHRINKER_NONSLAB, "btrfs-compr-pages"); in btrfs_alloc_compress_wsm()
1147 if (!compr_pool.shrinker) in btrfs_alloc_compress_wsm()
1155 compr_pool.shrinker->count_objects = btrfs_compr_pool_count; in btrfs_free_compress_wsm()
1156 compr_pool.shrinker->scan_objects = btrfs_compr_pool_scan; in btrfs_free_compress_wsm()
1157 compr_pool.shrinker in btrfs_free_compress_wsm()
[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/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/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/include/linux/fs/
H A Dsuper_types.h32 struct shrinker;
229 struct shrinker *s_shrink; /* per-sb shrinker handle */
/linux/Documentation/gpu/rfc/
H A Di915_gem_lmem.rst15 * TTM shrinker for discrete
/linux/net/sunrpc/
H A Dauth.c475 rpcauth_cache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) in rpcauth_cache_shrink_scan()
489 rpcauth_cache_shrink_count(struct shrinker *shrink, struct shrink_control *sc) in rpcauth_cache_shrink_count()
866 static struct shrinker *rpc_cred_shrinker;
/linux/fs/nfsd/
H A Dfilecache.c555 /* If the shrinker runs between calls to list_lru_walk_node() in
559 * the shrinker.
598 nfsd_file_lru_count(struct shrinker *s, struct shrink_control *sc) in nfsd_file_lru_count()
604 nfsd_file_lru_scan(struct shrinker *s, struct shrink_control *sc) in nfsd_file_lru_scan()
620 static struct shrinker *nfsd_file_shrinker;
/linux/drivers/gpu/drm/ttm/
H A Dttm_pool.c133 static struct shrinker *mm_shrinker;
1207 static unsigned long ttm_pool_shrinker_scan(struct shrinker *shrink, in ttm_pool_shrinker_scan()
1223 static unsigned long ttm_pool_shrinker_count(struct shrinker *shrink, in ttm_pool_shrinker_count()
/linux/fs/nfs/
H A Dinternal.h391 extern unsigned long nfs_access_cache_count(struct shrinker *shrink,
393 extern unsigned long nfs_access_cache_scan(struct shrinker *shrink,

12