Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loongson-3A3000: Abnormal memory(VmRSS) usage on mips64 #43091

Closed
orcNo opened this issue Dec 9, 2020 · 8 comments
Closed

Loongson-3A3000: Abnormal memory(VmRSS) usage on mips64 #43091

orcNo opened this issue Dec 9, 2020 · 8 comments

Comments

@orcNo
Copy link

orcNo commented Dec 9, 2020

What version of Go are you using (go version)?

$ go version
go version go1.15.5 linux/mips64le

Does this issue reproduce with the latest release?

no

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE="off"
GOARCH="mips64le"
GOBIN="/home/mips/gopath/go/bin/"
GOCACHE="/home/mips/.cache/go-build"
GOENV="/home/mips/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="mips64le"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/mips/gopath/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/mips/gopath/go:/usr/share/gocode/:/home/mips/gopath/dde-go"
GOPRIVATE=""
GOPROXY="https://goproxy.io,direct"
GOROOT="/usr/lib/go-1.15"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go-1.15/pkg/tool/linux_mips64le"
GCCGO="gccgo"
GOMIPS64="hardfloat"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -mabi=64 -mhard-float -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build153396803=/tmp/go-build -gno-record-gcc-switches"

What did you do?

  1. build simple golang binary using default flags
    code:
    `
    package main

import (
"fmt"
"time"
)

func main() {
fmt.Print("hellp go")
time.Sleep(10 * time.Second)
}
`

  1. run binary, monitor RSS use gnome-system-monitor & read /proc/[id]/smap

What did you expect to see?

small memory usage like amd64(4-6 MB) /arm (~1 MB)

What did you see instead?

Abnormal memory(RSS) usage. (32+ MB)

@mengzhuo
Copy link
Contributor

mengzhuo commented Dec 9, 2020

I can't reproduce this, I find it's 2MB by Go1.15
Could you provide kernel version and grep rss usage ps -eo vsz,rss,comm|grep <your programe name> as the example do?

uname -a
Linux ls3a4k.mzh.io 5.4.38 #1 SMP PREEMPT Sat Aug 29 22:59:15 CST 2020 mips64 mips64 mips64 GNU/Linux
$ps -eo vsz,rss,comm|grep example
$703344  2272 ok

@randall77
Copy link
Contributor

Go reserves larger chunks of virtual memory than it immediately uses as physical memory.
Assuming VmRSS means virtual memory, then I think this is expected. It should not affect physical memory use.

@orcNo
Copy link
Author

orcNo commented Dec 10, 2020

I can't reproduce this, I find it's 2MB by Go1.15
Could you provide kernel version and grep rss usage ps -eo vsz,rss,comm|grep <your programe name> as the example do?

uname -a
Linux ls3a4k.mzh.io 5.4.38 #1 SMP PREEMPT Sat Aug 29 22:59:15 CST 2020 mips64 mips64 mips64 GNU/Linux
$ps -eo vsz,rss,comm|grep example
$703344  2272 ok

@mengzhuo

$ps -eo vsz,rss,comm| grep test.out
703392 33680 test.out

$ uname -a
Linux mips-PC 4.19.0-loongson-3-desktop #1288 SMP PREEMPT Tue Jun 30 15:48:02 CST 2020 mips64 GNU/Linux

Use gccgo-8 to compile the same code, the memory usage will become normal.

@orcNo
Copy link
Author

orcNo commented Dec 10, 2020

Go reserves larger chunks of virtual memory than it immediately uses as physical memory.
Assuming VmRSS means virtual memory, then I think this is expected. It should not affect physical memory use.

According to the document (proc man-pages), I think it means the use of physical memory

@mengzhuo
Copy link
Contributor

Go reserves larger chunks of virtual memory than it immediately uses as physical memory.
Assuming VmRSS means virtual memory, then I think this is expected. It should not affect physical memory use.

According to the document (proc man-pages), I think it means the use of physical memory

Could you dump the memory map of your test program?

cat /proc/`pgrep <binary>`/maps
00010000-00164000 r-xp 00000000 fd:00 67232101                           /root/ok
00170000-0018c000 rwxp 00160000 fd:00 67232101                           /root/ok
0018c000-001bc000 rwxp 00000000 00:00 0
c000000000-c004000000 rwxp 00000000 00:00 0
7fffcc654000-7fffcea08000 rwxp 00000000 00:00 0
7fffcea08000-7fffceb88000 ---p 00000000 00:00 0
7fffceb88000-7fffceb8c000 rwxp 00000000 00:00 0
7fffceb8c000-7fffeea38000 ---p 00000000 00:00 0
7fffeea38000-7fffeea3c000 rwxp 00000000 00:00 0
7fffeea3c000-7ffff2a0c000 ---p 00000000 00:00 0
7ffff2a0c000-7ffff2a10000 rwxp 00000000 00:00 0
7ffff2a10000-7ffff3208000 ---p 00000000 00:00 0
7ffff3208000-7ffff320c000 rwxp 00000000 00:00 0
7ffff320c000-7ffff3308000 ---p 00000000 00:00 0
7ffff3308000-7ffff3368000 rwxp 00000000 00:00 0
7ffffbb08000-7ffffbb2c000 rw-p 00000000 00:00 0                          [stack]
7ffffbff4000-7ffffbff8000 r-xp 00000000 00:00 0
7fffff000000-7fffff004000 r--p 00000000 00:00 0                          [vvar]
7fffff004000-7fffff008000 r-xp 00000000 00:00 0                          [vdso]

@orcNo
Copy link
Author

orcNo commented Dec 10, 2020

Go reserves larger chunks of virtual memory than it immediately uses as physical memory.
Assuming VmRSS means virtual memory, then I think this is expected. It should not affect physical memory use.

According to the document (proc man-pages), I think it means the use of physical memory

Could you dump the memory map of your test program?

cat /proc/`pgrep <binary>`/maps
00010000-00164000 r-xp 00000000 fd:00 67232101                           /root/ok
00170000-0018c000 rwxp 00160000 fd:00 67232101                           /root/ok
0018c000-001bc000 rwxp 00000000 00:00 0
c000000000-c004000000 rwxp 00000000 00:00 0
7fffcc654000-7fffcea08000 rwxp 00000000 00:00 0
7fffcea08000-7fffceb88000 ---p 00000000 00:00 0
7fffceb88000-7fffceb8c000 rwxp 00000000 00:00 0
7fffceb8c000-7fffeea38000 ---p 00000000 00:00 0
7fffeea38000-7fffeea3c000 rwxp 00000000 00:00 0
7fffeea3c000-7ffff2a0c000 ---p 00000000 00:00 0
7ffff2a0c000-7ffff2a10000 rwxp 00000000 00:00 0
7ffff2a10000-7ffff3208000 ---p 00000000 00:00 0
7ffff3208000-7ffff320c000 rwxp 00000000 00:00 0
7ffff320c000-7ffff3308000 ---p 00000000 00:00 0
7ffff3308000-7ffff3368000 rwxp 00000000 00:00 0
7ffffbb08000-7ffffbb2c000 rw-p 00000000 00:00 0                          [stack]
7ffffbff4000-7ffffbff8000 r-xp 00000000 00:00 0
7fffff000000-7fffff004000 r--p 00000000 00:00 0                          [vvar]
7fffff004000-7fffff008000 r-xp 00000000 00:00 0                          [vdso]

maps

pgrep test.out | xargs -i%1 cat /proc/%1/maps
00010000-00164000 r-xp 00000000 08:17 55183520                           /home/mips/Go/tdbus/test.out
00170000-0018c000 rwxp 00160000 08:17 55183520                           /home/mips/Go/tdbus/test.out
0018c000-001bc000 rwxp 00000000 00:00 0 
c000000000-c004000000 rwxp 00000000 00:00 0 
ffce504000-ffd08b8000 rwxp 00000000 00:00 0 
ffd08b8000-ffd0a38000 ---p 00000000 00:00 0 
ffd0a38000-ffd0a3c000 rwxp 00000000 00:00 0 
ffd0a3c000-fff08e8000 ---p 00000000 00:00 0 
fff08e8000-fff08ec000 rwxp 00000000 00:00 0 
fff08ec000-fff48bc000 ---p 00000000 00:00 0 
fff48bc000-fff48c0000 rwxp 00000000 00:00 0 
fff48c0000-fff50b8000 ---p 00000000 00:00 0 
fff50b8000-fff50bc000 rwxp 00000000 00:00 0 
fff50bc000-fff51b8000 ---p 00000000 00:00 0 
fff51b8000-fff5218000 rwxp 00000000 00:00 0 
fffbf10000-fffbf34000 rw-p 00000000 00:00 0                              [stack]
fffbff4000-fffbff8000 r-xp 00000000 00:00 0 
ffffc78000-ffffc80000 r--p 00000000 00:00 0                              [vvar]
ffffc80000-ffffc84000 r-xp 00000000 00:00 0                              [vdso]

smaps

pgrep test.out | xargs -i%1 cat /proc/%1/smaps
00010000-00164000 r-xp 00000000 08:17 55183520                           /home/mips/Go/tdbus/test.out
Size:               1360 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                1216 kB
Pss:                1216 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:      1216 kB
Private_Dirty:         0 kB
Referenced:         1040 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd ex mr mw me dw 
00170000-0018c000 rwxp 00160000 08:17 55183520                           /home/mips/Go/tdbus/test.out
Size:                112 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                 112 kB
Pss:                 112 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:        16 kB
Private_Dirty:        96 kB
Referenced:          112 kB
Anonymous:            96 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd wr ex mr mw me dw ac 
0018c000-001bc000 rwxp 00000000 00:00 0 
Size:                192 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  80 kB
Pss:                  80 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        80 kB
Referenced:           80 kB
Anonymous:            80 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
c000000000-c004000000 rwxp 00000000 00:00 0 
Size:              65536 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:               32768 kB
Pss:               32768 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:     32768 kB
Referenced:        32768 kB
Anonymous:         32768 kB
LazyFree:              0 kB
AnonHugePages:     32768 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
ffcf154000-ffd1508000 rwxp 00000000 00:00 0 
Size:              36560 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                 176 kB
Pss:                 176 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:       176 kB
Referenced:          176 kB
Anonymous:           176 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
ffd1508000-ffd1688000 ---p 00000000 00:00 0 
Size:               1536 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: mr mw me 
ffd1688000-ffd168c000 rwxp 00000000 00:00 0 
Size:                 16 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  16 kB
Pss:                  16 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        16 kB
Referenced:           16 kB
Anonymous:            16 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
ffd168c000-fff1538000 ---p 00000000 00:00 0 
Size:             522928 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: mr mw me 
fff1538000-fff153c000 rwxp 00000000 00:00 0 
Size:                 16 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  16 kB
Pss:                  16 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        16 kB
Referenced:           16 kB
Anonymous:            16 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
fff153c000-fff550c000 ---p 00000000 00:00 0 
Size:              65344 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: mr mw me 
fff550c000-fff5510000 rwxp 00000000 00:00 0 
Size:                 16 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  16 kB
Pss:                  16 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        16 kB
Referenced:           16 kB
Anonymous:            16 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
fff5510000-fff5d08000 ---p 00000000 00:00 0 
Size:               8160 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: mr mw me 
fff5d08000-fff5d0c000 rwxp 00000000 00:00 0 
Size:                 16 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  16 kB
Pss:                  16 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        16 kB
Referenced:           16 kB
Anonymous:            16 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
fff5d0c000-fff5e08000 ---p 00000000 00:00 0 
Size:               1008 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: mr mw me 
fff5e08000-fff5e68000 rwxp 00000000 00:00 0 
Size:                384 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  96 kB
Pss:                  96 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        96 kB
Referenced:           96 kB
Anonymous:            96 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr ex mr mw me ac 
fffbdd0000-fffbdf4000 rw-p 00000000 00:00 0                              [stack]
Size:                144 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  32 kB
Pss:                  32 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        32 kB
Referenced:           32 kB
Anonymous:            32 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd wr mr mw me gd ac 
fffbff4000-fffbff8000 r-xp 00000000 00:00 0 
Size:                 16 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    1
VmFlags: rd ex mr mw me 
ffff920000-ffff928000 r--p 00000000 00:00 0                              [vvar]
Size:                 32 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd mr pf io de dd 
ffff928000-ffff92c000 r-xp 00000000 00:00 0                              [vdso]
Size:                 16 kB
KernelPageSize:       16 kB
MMUPageSize:          16 kB
Rss:                  16 kB
Pss:                   0 kB
Shared_Clean:         16 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:           16 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd ex mr mw me de

I use the script to collect data from the file(/proc//smaps), get this

total size 34544  (Kib)
binary size 0
heap size 0
stack size 32
lib size 0
anonymous size 33168
vdso size 16
vvar size 0
unkown size 1328

@orcNo orcNo changed the title Abnormal memory(VmRSS) usage on mips64 Loongson-3A3000: Abnormal memory(VmRSS) usage on mips64 Dec 10, 2020
@mengzhuo
Copy link
Contributor

I think It's the THP(Transparent huge pages).

Please take a look at smap/c000000000 sections, it reads THPeligible: 1, this might mark the whole page in used.
You can find out Loonson kernel setting of THP in byte by

$cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always [madvise] never
$cat /sys/kernel/mm/transparent_hugepage/hpage_pmd_size
33554432

which is same as the c000000000 section's Private_Dirty: 32768 kB.

FYI:
https://www.kernel.org/doc/Documentation/vm/transhuge.txt

@orcNo
Copy link
Author

orcNo commented Dec 10, 2020

I think It's the THP(Transparent huge pages).

Please take a look at smap/c000000000 sections, it reads THPeligible: 1, this might mark the whole page in used.
You can find out Loonson kernel setting of THP in byte by

$cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always [madvise] never
$cat /sys/kernel/mm/transparent_hugepage/hpage_pmd_size
33554432

which is same as the c000000000 section's Private_Dirty: 32768 kB.

FYI:
https://www.kernel.org/doc/Documentation/vm/transhuge.txt

THX !
I changed the THP configuration, then memory usage becomes normal
#echo never > /sys/kernel/mm/transparent_hugepage/enabled

@orcNo orcNo closed this as completed Dec 10, 2020
@golang golang locked and limited conversation to collaborators Dec 10, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants