[dpdk-dev] [PATCH v2] eal: change max hugepage sizes to 4 for ARM platforms

Gagandeep Singh g.singh at nxp.com
Thu Aug 8 14:13:20 CEST 2019


ARM is supporting maximum 4 hugepage sizes (64K, 2M, 32M
and 1G) when granule is 4KB since very long and DPDK
support maximum 3 hugepage sizes.

With all 4 hugepage sizes enabled, applications and some
stacks like VPP which are working over DPDK and using
"in-memory" eal option, or using separate mount points
on ARM based platform, fails at huge page initialization,
reporting error messages from eal:

EAL: FATAL: Cannot get hugepage information.
EAL: Cannot get hugepage information.
EAL: Error - exiting with code: 1

This issue is visible on kernel 5.2 (stable rel), where
kernel is by default creating directories for each supported
hugepage size in /sys/kernel/mm/hugepages/

On earlier Stable Kernel LTR's, the directories visible in
/sys/kernel/mm/hugepages/ were dependent upon what hugepage
sizes are configured at boot time.

This change increases the maximum supported mount points
to 4 for ARM based platforms.

Cc: stable at dpdk.org

Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
Signed-off-by: Nipun Gupta <nipun.gupta at nxp.com>
---

Changes in V2:
 - restricted this change specific to ARM
 - commit message updated
 - stable added to cc

 lib/librte_eal/common/eal_internal_cfg.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h
index edff09d07..a42f34923 100644
--- a/lib/librte_eal/common/eal_internal_cfg.h
+++ b/lib/librte_eal/common/eal_internal_cfg.h
@@ -15,7 +15,11 @@
 
 #include "eal_thread.h"
 
+#if defined(RTE_ARCH_ARM) || defined(RTE_ARCH_ARM64)
+#define MAX_HUGEPAGE_SIZES 4  /**< support up to 4 page sizes */
+#else
 #define MAX_HUGEPAGE_SIZES 3  /**< support up to 3 page sizes */
+#endif
 
 /*
  * internal configuration structure for the number, size and
-- 
2.17.1



More information about the dev mailing list