Skip to contentSkip to conversation

hugetlb: how to find who use hugetlb?

question Xishi Qiu 2 participants 7 messages Sep 19, 2016 – Sep 20, 2016 Memory management

lore
Share & tools
lore

Xishi Qiu

author
#0 lore raw

On my system, I set HugePages_Total to 2G(1024 x 2M), and I use 1G hugetlb, but the HugePages_Free is not 1G(512 x 2M), it is 280(280 x 2M) left, HugePages_Rsvd is 0, it seems someone use 232(232 x 2M) hugetlb additionally.

So how to find who use the additional hugetlb?

I search every process and find the total hugetlb size is only 1G, cat /proc/xx/smaps | grep KernelPageSize, then account the vma size which KernelPageSize is 2048 kB.

Thanks,
Xishi Qiu

author
#1 lore raw
Quoted 4 lines · Xishi Qiu

On my system, I set HugePages_Total to 2G(1024 x 2M), and I use 1G hugetlb, but the HugePages_Free is not 1G(512 x 2M), it is 280(280 x 2M) left, HugePages_Rsvd is 0, it seems someone use 232(232 x 2M) hugetlb additionally.

Quoted 9 lines

So how to find who use the additional hugetlb?

I search every process and find the total hugetlb size is only 1G, cat /proc/xx/smaps | grep KernelPageSize, then account the vma size which KernelPageSize is 2048 kB.

Thanks,
Xishi Qiu

I kill the processes which use hugetlb, and set 0 to nr_hugepages. My kernel version is v3.10

meminfo:

HugePages_Total:     232
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:      232
Hugepagesize:       2048 kB

"cat /proc/*/smaps | grep KernelPageSize| grep 2048" shows nothing.

linux-ZSfbIr:/home # mount | grep hugetlb
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
nodev on /dev/hugepages type hugetlbfs (rw,relatime)

linux-ZSfbIr:/home # ll /dev/hugepages/
total 0

linux-ZSfbIr:/home # ll /sys/fs/cgroup/hugetlb/
total 0
-rw-r--r-- 1 root root 0 Sep 13 08:10 cgroup.clone_children --w--w--w- 1 root root 0 Sep 13 08:10 cgroup.event_control -rw-r--r-- 1 root root 0 Sep 13 08:10 cgroup.procs -r--r--r-- 1 root root 0 Sep 13 08:10 cgroup.sane_behavior -rw-r--r-- 1 root root 0 Sep 13 08:10 hugetlb.1GB.failcnt -rw-r--r-- 1 root root 0 Sep 13 08:10 hugetlb.1GB.limit_in_bytes -rw-r--r-- 1 root root 0 Sep 13 08:10 hugetlb.1GB.max_usage_in_bytes -r--r--r-- 1 root root 0 Sep 13 08:10 hugetlb.1GB.usage_in_bytes -rw-r--r-- 1 root root 0 Sep 13 08:10 hugetlb.2MB.failcnt -rw-r--r-- 1 root root 0 Sep 13 08:10 hugetlb.2MB.limit_in_bytes -rw-r--r-- 1 root root 0 Sep 13 08:10 hugetlb.2MB.max_usage_in_bytes -r--r--r-- 1 root root 0 Sep 13 08:10 hugetlb.2MB.usage_in_bytes -rw-r--r-- 1 root root 0 Sep 13 08:10 notify_on_release -rw-r--r-- 1 root root 0 Sep 13 08:10 release_agent -rw-r--r-- 1 root root 0 Sep 13 08:10 tasks linux-ZSfbIr:/home #

Quoted 2 lines
author
#3 lore raw
Quoted 7 lines · Hillf Danton
Quoted 2 lines
Quoted 2 lines

So how to find who use the additional hugetlb?

Take a peek please at 5d317b2b653
("mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status")

Hillf

Hi Hillf,

This patch add the count of hugetlb for each process.
If someone use hugetlb, "cat /proc/*/smaps | grep KernelPageSize| grep 2048" will show something, right? But now it is nothing, and /dev/hugepages is empty.

Thanks,
Xishi Qiu

Quoted 3 lines

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

author
#5 lore raw
Quoted 6 lines · Hillf Danton
Quoted 4 lines

If someone use hugetlb, "cat /proc/*/smaps | grep KernelPageSize| grep 2048" will show something, right? But now it is nothing, and /dev/hugepages is empty.

With 4.7 or 4.8-rc7?

RHEL 7.1 (kernel version is v3.10)

Quoted 5 lines

thanks
Hillf

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

#6 lore raw
Quoted 8 lines
Quoted 5 lines
Quoted 4 lines

If someone use hugetlb, "cat /proc/*/smaps | grep KernelPageSize| grep 2048" will show something, right? But now it is nothing, and /dev/hugepages is empty.

With 4.7 or 4.8-rc7?

RHEL 7.1 (kernel version is v3.10)

Then please deliver the issue directly to your distributor and wait for feedback.

thanks
Hillf

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>