[root@localhost ~]# free -g
total used free shared buff/cache available
Mem: 510 129 377 0 3 339
Swap: 0 0 0
[root@localhost ~]# cat /proc/meminfo | grep -i huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
HugePages_Total: 256
HugePages_Free: 255
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 524288 kB
#include <sys/mman.h> #include <stdio.h> #include <memory.h> int main(int argc, char *argv[]) { char *m; size_t s = (8UL * 1024 * 1024); m = mmap(NULL, s, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | 0x40000 /*MAP_HUGETLB*/, -1, 0); if (m == MAP_FAILED) { perror("map mem"); m = NULL; return 1; } memset(m, 0, s); printf("map_hugetlb ok, press ENTER to quit! "); getchar(); munmap(m, s); return 0; }
[root@localhost ~]# cat /proc/meminfo | grep -i huge AnonHugePages: 0 kB ShmemHugePages: 0 kB HugePages_Total: 256 HugePages_Free: 254 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 524288 kB [root@localhost ~]# free -g total used free shared buff/cache available Mem: 510 129 377 0 3 339 Swap:
[root@localhost ~]# ps -elf | grep map 0 S root 115112 114967 0 80 0 - 8231 wait_w 07:26 pts/0 00:00:00 ./map 0 S root 115141 115051 0 80 0 - 1729 pipe_w 07:26 pts/1 00:00:00 grep --color=auto map [root@localhost ~]# cat /proc/115112/map map_files/ maps [root@localhost ~]# cat /proc/115112/maps 00400000-00410000 r-xp 00000000 08:10 22155957 /data1/dpdk-19.11/demo/huge/map 00410000-00420000 r--p 00000000 08:10 22155957 /data1/dpdk-19.11/demo/huge/map 00420000-00430000 rw-p 00010000 08:10 22155957 /data1/dpdk-19.11/demo/huge/map 400000000000-400020000000 rw-p 00000000 00:0f 293434 /anon_hugepage (deleted) ffff9c9e0000-ffff9c9f0000 rw-p 00000000 00:00 0 ffff9c9f0000-ffff9cb60000 r-xp 00000000 08:03 247 /usr/lib64/libc-2.17.so ffff9cb60000-ffff9cb70000 r--p 00160000 08:03 247 /usr/lib64/libc-2.17.so ffff9cb70000-ffff9cb80000 rw-p 00170000 08:03 247 /usr/lib64/libc-2.17.so ffff9cb80000-ffff9cb90000 rw-p 00000000 00:00 0 ffff9cb90000-ffff9cba0000 r--p 00000000 00:00 0 [vvar] ffff9cba0000-ffff9cbb0000 r-xp 00000000 00:00 0 [vdso] ffff9cbb0000-ffff9cbd0000 r-xp 00000000 08:03 240 /usr/lib64/ld-2.17.so ffff9cbd0000-ffff9cbe0000 r--p 00010000 08:03 240 /usr/lib64/ld-2.17.so ffff9cbe0000-ffff9cbf0000 rw-p 00020000 08:03 240 /usr/lib64/ld-2.17.so fffff7cf0000-fffff7d20000 rw-p 00000000 00:00 0 [stack] [root@localhost ~]#
#include <sys/mman.h> #include <stdio.h> #include <memory.h> int main(int argc, char *argv[]) { char *m; size_t s = (16UL * 1024 * 1024*1024); //改大 m = mmap(NULL, s, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | 0x40000 /*MAP_HUGETLB*/, -1, 0); if (m == MAP_FAILED) { perror("map mem"); m = NULL; return 1; } memset(m, 0, s); printf("map_hugetlb ok, press ENTER to quit! "); getchar(); munmap(m, s); return 0; }
[root@localhost ~]# ps -elf | grep map 0 S root 115761 114967 21 80 0 - 262183 wait_w 07:39 pts/0 00:00:01 ./map 0 S root 115769 115051 0 80 0 - 1729 pipe_w 07:39 pts/1 00:00:00 grep --color=auto map [root@localhost ~]# cat /proc/meminfo | grep -i huge AnonHugePages: 0 kB ShmemHugePages: 0 kB HugePages_Total: 256 HugePages_Free: 223 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 524288 kB [root@localhost ~]# cat /proc/115761/maps 00400000-00410000 r-xp 00000000 08:10 22155957 /data1/dpdk-19.11/demo/huge/map 00410000-00420000 r--p 00000000 08:10 22155957 /data1/dpdk-19.11/demo/huge/map 00420000-00430000 rw-p 00010000 08:10 22155957 /data1/dpdk-19.11/demo/huge/map 400000000000-400400000000 rw-p 00000000 00:0f 292814 /anon_hugepage (deleted) ffffb1060000-ffffb1070000 rw-p 00000000 00:00 0 ffffb1070000-ffffb11e0000 r-xp 00000000 08:03 247 /usr/lib64/libc-2.17.so ffffb11e0000-ffffb11f0000 r--p 00160000 08:03 247 /usr/lib64/libc-2.17.so ffffb11f0000-ffffb1200000 rw-p 00170000 08:03 247 /usr/lib64/libc-2.17.so ffffb1200000-ffffb1210000 rw-p 00000000 00:00 0 ffffb1210000-ffffb1220000 r--p 00000000 00:00 0 [vvar] ffffb1220000-ffffb1230000 r-xp 00000000 00:00 0 [vdso] ffffb1230000-ffffb1250000 r-xp 00000000 08:03 240 /usr/lib64/ld-2.17.so ffffb1250000-ffffb1260000 r--p 00010000 08:03 240 /usr/lib64/ld-2.17.so ffffb1260000-ffffb1270000 rw-p 00020000 08:03 240 /usr/lib64/ld-2.17.so ffffffc30000-ffffffc60000 rw-p 00000000 00:00 0 [stack] [root@localhost ~]# free -g total used free shared buff/cache available Mem: 510 129 377 0 3 339 Swap: 0 0 0 [root@localhost ~]#