Discussion:
[dpdk-dev] DPDK + Mellanox on POWER8
Sergey Kachkin
2018-12-06 16:26:10 UTC
Permalink
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

Loading...