[dpdk-dev] DPDK + Mellanox on POWER8

Sergey Kachkin s.kachkin at yadro.com
Thu Dec 6 17:26:10 CET 2018


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



More information about the dev mailing list