I may be incorrect, but is it not simply the case, that when using the no-huge parameter that MAP_HUGETLB is omitted from flags? Ray K From: Nick Tian Sent: Tuesday 9 August 2022 03:55 To: users@dpdk.org Subject: About memory coherency Hi I am confusing about the "no-huge" option of DPDK 21.11. The dpdk usage said: --no-huge:Use malloc instead of hugetlbfs. But when I check the EAL source code, I found some code piece like this: It's look like "no-huge" option will lead dpdk use memfd_create-->ftruncate-->mmap to reserve memory and then provide to application with rte_malloc. Am I right? If so, what the "malloc" in "use malloc instead of hugelbfs" refer to? EAL_memory.c static int eal_legacy_hugepage_init(void){ .... if (internal_conf->no_hugetlbfs) { .... #ifdef MEMFD_SUPPORTED /* create a memfd and store it in the segment fd table */ memfd = memfd_create("nohuge", 0); ...... /* we got an fd - now resize it */ if (ftruncate(memfd, internal_conf->memory) < 0) { ..... fd = memfd; flags = MAP_SHARED; } .... prealloc_addr = msl->base_va; addr = mmap(prealloc_addr, mem_sz, PROT_READ | PROT_WRITE, flags | MAP_FIXED, fd, 0); ...