shrink
int shrink;
shrink = (2 + size - min_window) / 4;
if (shrink) {
tau[cpu].low += shrink;
tau[cpu].high -= shrink;
binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
val /= shrink;
unsigned int shrink = guest_halt_poll_shrink;
if (shrink == 0) {
resource_size_t shrink;
shrink = min_t(u64, to_shrink, range_len(range));
if (shrink >= range_len(range)) {
to_shrink -= shrink;
- shrink);
bool (*shrink)(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket),
if (shrink(obj, ticket)) {
drm_pagemap_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
struct drm_pagemap_shrinker *shrinker = shrink->private_data;
drm_pagemap_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
struct drm_pagemap_shrinker *shrinker = shrink->private_data;
shrinker_free(shrinker->shrink);
struct shrinker *shrink;
shrink = shrinker_alloc(0, "drm-drm_pagemap:%s", drm->unique);
if (!shrink) {
shrinker->shrink = shrink;
shrink->count_objects = drm_pagemap_shrinker_count;
shrink->scan_objects = drm_pagemap_shrinker_scan;
shrink->private_data = shrinker;
shrinker_register(shrink);
struct shrinker *shrink;
int (*shrink)(struct drm_i915_gem_object *obj, unsigned int flags);
const unsigned int shrink[] = {
}, *s = shrink;
.shrink = shmem_shrink,
unsigned int shrink)
trace_i915_gem_shrink(i915, target, shrink);
if (shrink & I915_SHRINK_BOUND) {
shrink &= ~I915_SHRINK_BOUND;
if (shrink & I915_SHRINK_ACTIVE) {
if ((shrink & phase->bit) == 0)
if (shrink & I915_SHRINK_VMAPS &&
if (!(shrink & I915_SHRINK_ACTIVE) &&
if (drop_pages(obj, shrink, trylock_vm) &&
!try_to_writeback(obj, shrink))
if (shrink & I915_SHRINK_BOUND)
unsigned long shrink, bool trylock_vm)
if (shrink & I915_SHRINK_ACTIVE)
if (!(shrink & I915_SHRINK_BOUND))
if (obj->ops->shrink) {
return obj->ops->shrink(obj, shrink_flags);
.shrink = i915_ttm_shrink,
shrink,
bool (*shrink)(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket);
stages[i].shrink,
static unsigned long ttm_pool_shrinker_scan(struct shrinker *shrink,
static unsigned long ttm_pool_shrinker_count(struct shrinker *shrink,
xe_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
struct xe_shrinker *shrinker = to_xe_shrinker(shrink);
static unsigned long xe_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
struct xe_shrinker *shrinker = to_xe_shrinker(shrink);
shrinker_free(shrinker->shrink);
shrinker->shrink = shrinker_alloc(0, "drm-xe_gem:%s", xe->drm.unique);
if (!shrinker->shrink) {
shrinker->shrink->count_objects = xe_shrinker_count;
shrinker->shrink->scan_objects = xe_shrinker_scan;
shrinker->shrink->private_data = shrinker;
shrinker_register(shrinker->shrink);
struct shrinker *shrink;
static struct xe_shrinker *to_xe_shrinker(struct shrinker *shrink)
return shrink->private_data;
struct shrinker *shrink;
static unsigned long bch_mca_scan(struct shrinker *shrink,
struct cache_set *c = shrink->private_data;
static unsigned long bch_mca_count(struct shrinker *shrink,
struct cache_set *c = shrink->private_data;
if (c->shrink)
shrinker_free(c->shrink);
c->shrink = shrinker_alloc(0, "md-bcache:%pU", c->set_uuid);
if (!c->shrink) {
c->shrink->count_objects = bch_mca_count;
c->shrink->scan_objects = bch_mca_scan;
c->shrink->seeks = 4;
c->shrink->batch = c->btree_pages * 2;
c->shrink->private_data = c;
shrinker_register(c->shrink);
if (c->shrink)
c->shrink->scan_objects(c->shrink, &sc);
static unsigned long dm_bufio_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
c = shrink->private_data;
static unsigned long dm_bufio_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
struct dm_bufio_client *c = shrink->private_data;
static unsigned long dmz_mblock_shrinker_count(struct shrinker *shrink,
struct dmz_metadata *zmd = shrink->private_data;
static unsigned long dmz_mblock_shrinker_scan(struct shrinker *shrink,
struct dmz_metadata *zmd = shrink->private_data;
r = ((new_size > old_size) ? grow : shrink)(&resize);
static unsigned long raid5_cache_scan(struct shrinker *shrink,
struct r5conf *conf = shrink->private_data;
static unsigned long raid5_cache_count(struct shrinker *shrink,
struct r5conf *conf = shrink->private_data;
static unsigned long erofs_shrink_count(struct shrinker *shrink,
static unsigned long erofs_shrink_scan(struct shrinker *shrink,
static unsigned long ext4_es_count(struct shrinker *shrink,
sbi = shrink->private_data;
static unsigned long ext4_es_scan(struct shrinker *shrink,
struct ext4_sb_info *sbi = shrink->private_data;
int shrink = (attr->ia_size < inode->i_size);
if (shrink) {
if (ext4_handle_valid(handle) && shrink) {
if (!shrink) {
if (shrink)
if (!shrink) {
unsigned long f2fs_shrink_count(struct shrinker *shrink,
unsigned long f2fs_shrink_scan(struct shrinker *shrink,
unsigned long f2fs_shrink_count(struct shrinker *shrink,
unsigned long f2fs_shrink_scan(struct shrinker *shrink,
static unsigned long gfs2_glock_shrink_scan(struct shrinker *shrink,
static unsigned long gfs2_glock_shrink_count(struct shrinker *shrink,
static unsigned long gfs2_qd_shrink_scan(struct shrinker *shrink,
static unsigned long gfs2_qd_shrink_count(struct shrinker *shrink,
static unsigned long jbd2_journal_shrink_scan(struct shrinker *shrink,
journal_t *journal = shrink->private_data;
static unsigned long jbd2_journal_shrink_count(struct shrinker *shrink,
journal_t *journal = shrink->private_data;
static unsigned long mb_cache_count(struct shrinker *shrink,
struct mb_cache *cache = shrink->private_data;
static unsigned long mb_cache_scan(struct shrinker *shrink,
struct mb_cache *cache = shrink->private_data;
nfs_access_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
nfs_access_cache_count(struct shrinker *shrink, struct shrink_control *sc)
extern unsigned long nfs_access_cache_count(struct shrinker *shrink,
extern unsigned long nfs_access_cache_scan(struct shrinker *shrink,
static unsigned long nfs4_xattr_cache_count(struct shrinker *shrink,
static unsigned long nfs4_xattr_entry_count(struct shrinker *shrink,
static unsigned long nfs4_xattr_cache_scan(struct shrinker *shrink,
static unsigned long nfs4_xattr_entry_scan(struct shrinker *shrink,
nfs4_xattr_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
nfs4_xattr_cache_count(struct shrinker *shrink, struct shrink_control *sc)
nfs4_xattr_entry_scan(struct shrinker *shrink, struct shrink_control *sc)
lru = (shrink == nfs4_xattr_large_entry_shrinker) ?
nfs4_xattr_entry_count(struct shrinker *shrink, struct shrink_control *sc)
lru = (shrink == nfs4_xattr_large_entry_shrinker) ?
nfsd4_state_shrinker_count(struct shrinker *shrink, struct shrink_control *sc)
struct nfsd_net *nn = shrink->private_data;
nfsd4_state_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc)
nfsd_reply_cache_count(struct shrinker *shrink, struct shrink_control *sc)
struct nfsd_net *nn = shrink->private_data;
nfsd_reply_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
struct nfsd_net *nn = shrink->private_data;
static unsigned long nfsd_reply_cache_count(struct shrinker *shrink,
static unsigned long nfsd_reply_cache_scan(struct shrinker *shrink,
unsigned int shrink;
shrink = min_bits;
shrink = lru_resv->r_len / 2;
lru_resv->r_len -= shrink;
resv->r_len = shrink;
dqcache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
dqcache_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
static unsigned long super_cache_scan(struct shrinker *shrink,
sb = shrink->private_data;
static unsigned long super_cache_count(struct shrinker *shrink,
sb = shrink->private_data;
unsigned long ubifs_shrink_count(struct shrinker *shrink,
unsigned long ubifs_shrink_scan(struct shrinker *shrink,
unsigned long ubifs_shrink_scan(struct shrinker *shrink,
unsigned long ubifs_shrink_count(struct shrinker *shrink,
struct shrinker *shrink,
struct xfs_buftarg *btp = shrink->private_data;
struct shrinker *shrink,
struct xfs_buftarg *btp = shrink->private_data;
struct shrinker *shrink,
struct xfs_mount *mp = shrink->private_data;
struct shrinker *shrink,
struct xfs_mount *mp = shrink->private_data;
struct shrinker *shrink,
struct xfs_quotainfo *qi = shrink->private_data;
struct shrinker *shrink,
struct xfs_quotainfo *qi = shrink->private_data;
bool (*shrink)(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket),
__field(void *, shrink)
__entry->shrink = shr->scan_objects;
__entry->shrink,
__field(void *, shrink)
__entry->shrink = shr->scan_objects;
__entry->shrink,
lazy_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
lazy_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
static unsigned long shrink_huge_zero_folio_count(struct shrinker *shrink,
static unsigned long shrink_huge_zero_folio_scan(struct shrinker *shrink,
static unsigned long deferred_split_count(struct shrinker *shrink,
static unsigned long deferred_split_scan(struct shrinker *shrink,
static unsigned long deferred_split_count(struct shrinker *shrink,
static unsigned long deferred_split_scan(struct shrinker *shrink,
kfree_rcu_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
kfree_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
SLAB_ATTR(shrink);
vmap_node_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
u32 shrink = min_t(u32, delta, skb_frag_size(frag));
memcpy(xdp->data_end, skb_frag_address(frag), shrink);
xdp->data_end += shrink;
sinfo->xdp_frags_size -= shrink;
delta -= shrink;
if (bpf_xdp_shrink_data(xdp, frag, shrink, false))
bool shrink = len_diff < 0;
if (!shrink) {
bool shrink = len_diff < 0;
if (!shrink)
if ((shrink && (len_diff_abs >= len_cur ||
(!shrink && (skb->len + len_diff_abs > len_max &&
ret = shrink ? bpf_skb_net_shrink(skb, off, len_diff_abs, flags) :
static struct xdp_buff *bpf_xdp_shrink_data_zc(struct xdp_buff *xdp, int shrink,
zc_frag->data_end -= shrink;
zc_frag->data += shrink;
int shrink, bool tail)
bool release = skb_frag_size(frag) == shrink;
zc_frag = bpf_xdp_shrink_data_zc(xdp, shrink, tail, release);
skb_frag_off_add(frag, shrink);
skb_frag_size_sub(frag, shrink);
int shrink = min_t(int, offset, skb_frag_size(frag));
len_free += shrink;
offset -= shrink;
if (bpf_xdp_shrink_data(xdp, frag, shrink, true))
rpcauth_cache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
rpcauth_cache_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
else if (shrink)
shrink = 1;
&& !validate && !shrink && !set_debug && !show_ops)
int shrink;
unsigned int old, val, shrink, grow_start;
shrink = READ_ONCE(halt_poll_ns_shrink);
if (shrink == 0)
val /= shrink;