From 29a2ca738889c3d2a897a2b01ee0303bd5c8dc16 Mon Sep 17 00:00:00 2001 From: Adrien Mazarguil Date: Thu, 21 Feb 2013 17:39:23 +0100 Subject: [PATCH] mem: get memzone from any CPU socket when hugepages are disabled When huge pages are disabled, memory is allocated for a single, undefined CPU socket using malloc(), causing rte_memzone_reserve_aligned() to fail most of the time. This patch causes that memory to use SOCKET_ID_ANY instead of 0, and allow it to be used in place of any socket ID specified by user. Signed-off-by: Adrien Mazarguil Acked-by: Damien Millescamps --- lib/librte_eal/common/eal_common_memzone.c | 1 + lib/librte_eal/linuxapp/eal/eal_memory.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c index 790f2fab9a..2476f3c20d 100644 --- a/lib/librte_eal/common/eal_common_memzone.c +++ b/lib/librte_eal/common/eal_common_memzone.c @@ -199,6 +199,7 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len, /* bad socket ID */ if (socket_id != SOCKET_ID_ANY && + free_memseg[i].socket_id != SOCKET_ID_ANY && socket_id != free_memseg[i].socket_id) continue; diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c index b980dba239..98477f99de 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memory.c +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c @@ -995,7 +995,7 @@ rte_eal_hugepage_init(void) mcfg->memseg[0].phys_addr = (phys_addr_t)(uintptr_t)addr; mcfg->memseg[0].addr = addr; mcfg->memseg[0].len = internal_config.memory; - mcfg->memseg[0].socket_id = 0; + mcfg->memseg[0].socket_id = SOCKET_ID_ANY; return 0; } -- 2.20.1