On Tue, Jul 02, 2019 at 02:37:30PM -0400, Waiman Long wrote: > Currently, a value of '1" is written to /sys/kernel/slab/<slab>/shrink > file to shrink the slab by flushing all the per-cpu slabs and free > slabs in partial lists. This applies only to the root caches, though. > > Extends this capability by shrinking all the child memcg caches and > the root cache when a value of '2' is written to the shrink sysfs file. > > On a 4-socket 112-core 224-thread x86-64 system after a parallel kernel > build, the the amount of memory occupied by slabs before shrinking > slabs were: > > # grep task_struct /proc/slabinfo > task_struct 7114 7296 7744 4 8 : tunables 0 0 > 0 : slabdata 1824 1824 0 > # grep "^S[lRU]" /proc/meminfo > Slab: 1310444 kB > SReclaimable: 377604 kB > SUnreclaim: 932840 kB > > After shrinking slabs: > > # grep "^S[lRU]" /proc/meminfo > Slab: 695652 kB > SReclaimable: 322796 kB > SUnreclaim: 372856 kB > # grep task_struct /proc/slabinfo > task_struct 2262 2572 7744 4 8 : tunables 0 0 > 0 : slabdata 643 643 0 > > Signed-off-by: Waiman Long <longman@xxxxxxxxxx> Acked-by: Roman Gushchin <guro@xxxxxx> Thanks, Waiman!