Hi,

we are interested to run DPDK 18.11 on POWER8 based server.  I've read the recent release notes update regarding P8 support. At the same time after some playing I was able to run l2fwd with huge pages normally by hacking following commits:

https://github.com/DPDK/dpdk/commit/284ae3e9ff9a92575c28c858efd2c85c8de6d440
https://github.com/DPDK/dpdk/commit/1df21702873dab6ed95cfc5b7828553afd39fcde

Exact modifications are:

diff ../dpdk-18.11/lib/librte_eal/linuxapp/eal/eal_memory.c
849,851c849
< #ifdef RTE_ARCH_PPC_64
<flags |= MAP_HUGETLB;
< #endif
---
>

and

diff ../dpdk-18.11/lib/librte_eal/common/eal_common_memory.c
55,58c55
<
< static uint64_t baseaddr = 0;
<
---
> static uint64_t baseaddr = 0x100000000;

Without the modifications above, l2fwd with huge pages fails. The reason is following mmap() in alloc_seg() failing with EBUSY.

strace:
mmap(0x101000000, 34376515584, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x101000000    // first mmap in alloc_va_space() -> eal_get_virtual_area()

.......

mmap(0x101000000, 16777216, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED|MAP_POPULATE, 136, 0) = -1 EBUSY (Device or resource busy) // this mmap in alloc_seg() fails.

My goal is to get DPDK 18.11 + support for POWER8 based machines. I'm new to DPDK and I'd like to ask your feedback if the hacks above could harm any DPDK functionality? (so far I do not see any obvious issue). If not, can we go further with POWER8 support in new DPDK versions?

thanks in advance,

regards,
Sergey

Reply via email to