+cc linux-mm@kvack.org

On 2020/4/26 19:21, Yang Yingliang wrote:
Hi,

When I doing the follow test in kernel-5.7-rc2, I found mem-free is decreased

#!/bin/sh
cd /sys/fs/cgroup/memory/

for((i=0;i<45;i++))
do
        for((j=0;j<60000;j++))
        do
                mkdir /sys/fs/cgroup/memory/yyl-cg$j
        done
        sleep 1
        ls /sys/fs/cgroup/memory/ | grep yyl | xargs rmdir
done


before test the /proc/meminfo is:

MemTotal:       493554824 kB
MemFree:        491240912 kB
MemAvailable:   489424520 kB
Buffers:            4112 kB
Cached:            65400 kB
SwapCached:            0 kB
Active:           156016 kB
Inactive:          37720 kB
Active(anon):     128372 kB
Inactive(anon):     7188 kB
Active(file):      27644 kB
Inactive(file):    30532 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        4194300 kB
Dirty:               112 kB
Writeback:             0 kB
AnonPages:        124356 kB
Mapped:            53724 kB
Shmem:             11036 kB
KReclaimable:      93488 kB
Slab:             599660 kB
SReclaimable:      93488 kB
SUnreclaim:       506172 kB
KernelStack:       23008 kB
PageTables:         4340 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    250971712 kB
Committed_AS:    1834448 kB
VmallocTotal:   135290159040 kB
VmallocUsed:      229284 kB
VmallocChunk:          0 kB
Percpu:            80896 kB
HardwareCorrupted:     0 kB
AnonHugePages:     43008 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:          65536 kB
CmaFree:           40480 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB

after test:
MemTotal:       493554824 kB
MemFree:        484492920 kB
MemAvailable:   482801124 kB
Buffers:           21984 kB
Cached:           151380 kB
SwapCached:            0 kB
Active:           230000 kB
Inactive:          68068 kB
Active(anon):     130108 kB
Inactive(anon):    13804 kB
Active(file):      99892 kB
Inactive(file):    54264 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        4194300 kB
Dirty:                36 kB
Writeback:             0 kB
AnonPages:        125080 kB
Mapped:            55520 kB
Shmem:             19220 kB
KReclaimable:     246696 kB
Slab:            5381572 kB
SReclaimable:     246696 kB
SUnreclaim:      5134876 kB
KernelStack:       27360 kB
PageTables:         4172 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    250971712 kB
Committed_AS:    1588600 kB
VmallocTotal:   135290159040 kB
VmallocUsed:      230836 kB
VmallocChunk:          0 kB
Percpu:          1827840 kB
HardwareCorrupted:     0 kB
AnonHugePages:     43008 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:          65536 kB
CmaFree:           40480 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB

after echo 3 > /proc/sys/vm/drop_caches
MemTotal:       493554824 kB
MemFree:        485104048 kB
MemAvailable:   483358392 kB
Buffers:            6168 kB
Cached:            79904 kB
SwapCached:            0 kB
Active:           165348 kB
Inactive:          45780 kB
Active(anon):     130528 kB
Inactive(anon):    13800 kB
Active(file):      34820 kB
Inactive(file):    31980 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        4194300 kB
Dirty:                 8 kB
Writeback:             0 kB
AnonPages:        125236 kB
Mapped:            55516 kB
Shmem:             19220 kB
KReclaimable:     226332 kB
Slab:            5353952 kB
SReclaimable:     226332 kB
SUnreclaim:      5127620 kB
KernelStack:       23040 kB
PageTables:         4212 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    250971712 kB
Committed_AS:    1672424 kB
VmallocTotal:   135290159040 kB
VmallocUsed:      230436 kB
VmallocChunk:          0 kB
Percpu:          1379840 kB
HardwareCorrupted:     0 kB
AnonHugePages:     43008 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
CmaTotal:          65536 kB
CmaFree:           40480 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB

after test and drop caches, the /proc/cgroups is:
#subsys_name    hierarchy       num_cgroups     enabled
cpuset  11      1       1
cpu     2       1       1
cpuacct 2       1       1
blkio   8       1       1
memory  5       83      1
devices 3       41      1
freezer 6       1       1
net_cls 9       1       1
perf_event      10      1       1
net_prio        9       1       1
hugetlb 4       1       1
pids    7       51      1
rdma    12      1       1

All the dir that created by the script is already removed, but I got:
 - MemFree is decreased about 6.7G
 - SUnreclaim is increased about 4.6G
 - Percpu is increased about 1.7G

It seems we have memory leak in cgroup ?