[dpdk-dev] A (possible) problem with `--no-huge` option

Ilya Matveychikov matvejchikov at gmail.com
Sun May 14 12:34:14 CEST 2017


Hi guys,

I have a problem while running DPDK with `--no-huge` option. It seems that the problem occurs since commit cdc242f260e766bd95a658b5e0686a62ec04f5b0 and that is the change that affects me:

+	if ((page & 0x7fffffffffffffULL) == 0)
+		return RTE_BAD_PHYS_ADDR;
+

What I did is to try to create memory pool using rte_pktmbuf_pool_create(). I dig into the issue and found that in my case “page" value is 0x0080000000000000 which means that the page is not present and “soft-dirty” (according to kernel’s documentation):

   * Bits 0-54  page frame number (PFN) if present
   * Bits 0-4   swap type if swapped
   * Bits 5-54  swap offset if swapped
   * Bit  55    pte is soft-dirty (see Documentation/vm/soft-dirty.txt)
   * Bit  56    page exclusively mapped (since 4.2)
   * Bits 57-60 zero
   * Bit  61    page is file-page or shared-anon (since 3.5)
   * Bit  62    page swapped
   * Bit  63    page present

So, before the change mentioned all “works” fine and such pages were not handled. But now the check causes rte_mempool_populate_default to fail with -EINVAL...
Can anyone familiar with the memory pool allocation helps with the issue?

Thanks in advice,
Ilya Matveychikov.



More information about the dev mailing list