Re: [PATCH 2/4] mem: add API to obstain memory-backed file info
From: Tan, Jianfeng <hidden>
Date: 2016-01-12 09:12:18
Hi! On 1/12/2016 4:26 AM, Rich Lane wrote:
On Sun, Jan 10, 2016 at 3:43 AM, Jianfeng Tan <jianfeng.tan@intel.com
<mailto:jianfeng.tan@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