> -----邮件原件----- > 发件人: David Wilder > 发送时间: 2018年11月16日 10:08 > 收件人: dev@dpdk.org > 抄送: stable@dpdk.org; pradeep@us.ibm.com; chaozhu@linux.vnet.ibm.com; > thomas@monjalon.net > 主题: [PATCH v2] 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 (see: commit > 284ae3e9ff9a92575c28c858efd2c85c8de6d440). 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. > > Signed-off-by: David Wilder > Reviewed-by: Pradeep Satyanarayana > --- > I updated the documentation and release notes as suggested by Thomas. > Thank you. > > MAINTAINERS | 2 +- > doc/guides/linux_gsg/sys_reqs.rst | 6 ------ > doc/guides/rel_notes/release_18_11.rst | 1 + > lib/librte_eal/linuxapp/eal/eal_memalloc.c | 3 --- > lib/librte_eal/linuxapp/eal/eal_memory.c | 4 ---- > 5 files changed, 2 insertions(+), 14 deletions(-) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 19353ac89..c4d2fd086 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 e2230f37b..c02ec28c1 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 51d007582..87188a6be 100644 > --- a/doc/guides/rel_notes/release_18_11.rst > +++ b/doc/guides/rel_notes/release_18_11.rst > @@ -532,6 +532,7 @@ 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 > suported. > > Tested Platforms > ---------------- > diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c > b/lib/librte_eal/linuxapp/eal/eal_memalloc.c > index 48b9c7360..784939566 100644 > --- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c > +++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c > @@ -753,9 +753,6 @@ alloc_seg(struct rte_memseg *ms, void *addr, int > socket_id, > 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 48b23ce19..6f94621d4 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.19.1 Thanks David! Looking forward to the patch support for P8. Acked-by: Chao Zhu