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