Hi! On 1/12/2016 4:26 AM, Rich Lane wrote: > On Sun, Jan 10, 2016 at 3:43 AM, Jianfeng Tan <jianfeng.tan at intel.com > <mailto:jianfeng.tan at intel.com>> wrote: > > @@ -1157,6 +1180,20 @@ rte_eal_hugepage_init(void) > mcfg->memseg[0].len = internal_config.memory; > mcfg->memseg[0].socket_id = socket_id; > > + hugepage = > create_shared_memory(eal_hugepage_info_path(), > + sizeof(struct hugepage_file)); > + hugepage->orig_va = addr; > + hugepage->final_va = addr; > + hugepage->physaddr = rte_mem_virt2phy(addr); > + hugepage->size = pagesize; > > > Should this be "hugepage->size = internal_config.memory"? Otherwise > the vhost-user > memtable entry has a size of only 2MB.
I don't think so. See the definition: 47 struct hugepage_file { 48 void *orig_va; /**< virtual addr of first mmap() */ 49 void *final_va; /**< virtual addr of 2nd mmap() */ 50 uint64_t physaddr; /**< physical addr */ 51 size_t size; /**< the page size */ 52 int socket_id; /**< NUMA socket ID */ 53 int file_id; /**< the '%d' in HUGEFILE_FMT */ 54 int memseg_id; /**< the memory segment to which page belongs */ 55 #ifdef RTE_EAL_SINGLE_FILE_SEGMENTS 56 int repeated; /**< number of times the page size is repeated */ 57 #endif 58 char filepath[MAX_HUGEPAGE_PATH]; /**< path to backing file on filesystem */ 59 }; size stands for the page size instead of total size. Thanks, Jianfeng