[dpdk-dev] [PATCH 2/4] mem: add API to obstain memory-backed file info

Tan, Jianfeng jianfeng.tan at intel.com
Tue Jan 12 10:12:13 CET 2016


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


More information about the dev mailing list