From 6b062d56bcff9a393809f46e0aae19a18bc0fe57 Mon Sep 17 00:00:00 2001 From: David Wilder Date: Fri, 16 Nov 2018 09:35:38 -0800 Subject: [PATCH] mem: fix anonymous mapping on Power9 Removed the use of MAP_HUGETLB for anonymous mapping on ppc64. The MAP_HUGETLB had previously been added to workaround issues on IBM Power8 systems when mapping /dev/zero. In the current code the MAP_HUGETLB flag will cause the anonymous mapping to fail on Power9. Note, Power8 is currently failing to correctly mmap Hugepages, with and without this change. Fixes: 284ae3e9ff9a ("eal/ppc: fix mmap for memory initialization") Signed-off-by: David Wilder Reviewed-by: Pradeep Satyanarayana --- MAINTAINERS | 2 +- doc/guides/linux_gsg/sys_reqs.rst | 6 ------ doc/guides/rel_notes/release_18_11.rst | 2 ++ lib/librte_eal/linuxapp/eal/eal_memalloc.c | 3 --- lib/librte_eal/linuxapp/eal/eal_memory.c | 4 ---- 5 files changed, 3 insertions(+), 14 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 19353ac89a..c4d2fd086f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -233,7 +233,7 @@ F: drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c F: drivers/net/i40e/i40e_rxtx_vec_neon.c F: drivers/net/virtio/virtio_rxtx_simple_neon.c -IBM POWER +IBM POWER (alpha) M: Chao Zhu F: lib/librte_eal/common/arch/ppc_64/ F: lib/librte_eal/common/include/arch/ppc_64/ diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index e2230f37b3..c02ec28c10 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -183,12 +183,6 @@ On a NUMA machine, pages should be allocated explicitly on separate nodes:: For 1G pages, it is not possible to reserve the hugepage memory after the system has booted. - On IBM POWER system, the nr_overcommit_hugepages should be set to the same value as nr_hugepages. - For example, if the required page number is 128, the following commands are used:: - - echo 128 > /sys/kernel/mm/hugepages/hugepages-16384kB/nr_hugepages - echo 128 > /sys/kernel/mm/hugepages/hugepages-16384kB/nr_overcommit_hugepages - Using Hugepages with the DPDK ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst index 51d007582f..a94e744632 100644 --- a/doc/guides/rel_notes/release_18_11.rst +++ b/doc/guides/rel_notes/release_18_11.rst @@ -532,6 +532,8 @@ Known Issues driver; the Linux netvsc device must be brought up before the netvsc device is unbound and passed to the DPDK. +* IBM Power8 is not supported by this release of DPDK. IBM Power9 is supported. + Tested Platforms ---------------- diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c b/lib/librte_eal/linuxapp/eal/eal_memalloc.c index 48b9c73603..7849395662 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c +++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c @@ -753,9 +753,6 @@ mapped: munmap(addr, alloc_sz); unmapped: flags = MAP_FIXED; -#ifdef RTE_ARCH_PPC_64 - flags |= MAP_HUGETLB; -#endif new_addr = eal_get_virtual_area(addr, &alloc_sz, alloc_sz, 0, flags); if (new_addr != addr) { if (new_addr != NULL) diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c index 48b23ce19a..6f94621d4f 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memory.c +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c @@ -847,10 +847,6 @@ alloc_va_space(struct rte_memseg_list *msl) void *addr; int flags = 0; -#ifdef RTE_ARCH_PPC_64 - flags |= MAP_HUGETLB; -#endif - page_sz = msl->page_sz; mem_sz = page_sz * msl->memseg_arr.len; -- 2.20.1