When building with meson, the default size of virtual address space
reserved for mapping pages was globally set at 512GB, which is too big for
use in 32-bit processes. To match the behaviour with "make", we configure
this to be 512GB for 64-bit and 2MB for 32-bit builds.

Bugzilla ID: 498
Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
Cc: anatoly.bura...@intel.com

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
---
 config/meson.build  | 6 ++++++
 config/rte_config.h | 1 -
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/config/meson.build b/config/meson.build
index 351e268c1..72fdabff2 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -238,6 +238,12 @@ dpdk_conf.set('RTE_ENABLE_TRACE_FP', 
get_option('enable_trace_fp'))
 dpdk_conf.set('RTE_MAX_VFIO_GROUPS', 64)
 dpdk_conf.set('RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB', 64)
 dpdk_conf.set('RTE_LIBRTE_DPAA2_USE_PHYS_IOVA', true)
+if dpdk_conf.get('RTE_ARCH_64')
+       dpdk_conf.set('RTE_MAX_MEM_MB', 524288)
+else
+# for 32-bits we need smaller reserved memory areas
+       dpdk_conf.set('RTE_MAX_MEM_MB', 2048)
+endif
 
 
 compile_time_cpuflags = []
diff --git a/config/rte_config.h b/config/rte_config.h
index e9201fd46..086acf74a 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -38,7 +38,6 @@
 #define RTE_MAX_MEM_MB_PER_LIST 32768
 #define RTE_MAX_MEMSEG_PER_TYPE 32768
 #define RTE_MAX_MEM_MB_PER_TYPE 65536
-#define RTE_MAX_MEM_MB 524288
 #define RTE_MAX_MEMZONE 2560
 #define RTE_MAX_TAILQ 32
 #define RTE_LOG_DP_LEVEL RTE_LOG_INFO
-- 
2.25.1

Reply via email to