[dpdk-dev,v3,1/3] mem: fix 32-bit memory upper limit for non-legacy mode
Checks
Commit Message
32-bit mode has an upper limit on amount of VA space it can preallocate,
but the original implementation used the wrong constant, resulting in
failure to initialize due to integer overflow. Fix it by using the
correct constant.
Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
Cc: anatoly.burakov@intel.com
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/librte_eal/common/eal_common_memory.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Burakov, Anatoly
> Sent: Tuesday, April 24, 2018 11:19 AM
> To: dev@dpdk.org
> Cc: Pattan, Reshma <reshma.pattan@intel.com>; Burakov, Anatoly
> <anatoly.burakov@intel.com>
> Subject: [PATCH v3 1/3] mem: fix 32-bit memory upper limit for non-legacy
> mode
>
> 32-bit mode has an upper limit on amount of VA space it can preallocate, but
> the original implementation used the wrong constant, resulting in failure to
> initialize due to integer overflow. Fix it by using the correct constant.
>
> Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
> Cc: anatoly.burakov@intel.com
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> lib/librte_eal/common/eal_common_memory.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Tested-by: Jananee Parthasarathy <jananeex.m.parthasarathy@intel.com>
@@ -249,7 +249,7 @@ memseg_primary_init_32(void)
else
total_requested_mem = internal_config.memory;
- max_mem = (uint64_t) RTE_MAX_MEM_MB_PER_TYPE << 20;
+ max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
if (total_requested_mem > max_mem) {
RTE_LOG(ERR, EAL, "Invalid parameters: 32-bit process can at most use %uM of memory\n",
(unsigned int)(max_mem >> 20));