From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.droids-corp.org (zoll.droids-corp.org [94.23.50.67]) by dpdk.org (Postfix) with ESMTP id 1594058F4 for ; Mon, 9 Feb 2015 18:43:40 +0100 (CET) Received: from was59-1-82-226-113-214.fbx.proxad.net ([82.226.113.214] helo=[192.168.0.10]) by mail.droids-corp.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1YKsQc-0006n3-7d; Mon, 09 Feb 2015 18:47:27 +0100 Message-ID: <54D8F1C0.9060904@6wind.com> Date: Mon, 09 Feb 2015 18:43:28 +0100 From: Olivier MATZ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0 MIME-Version: 1.0 To: "Liang, Cunming" , "dev@dpdk.org" References: <1422491072-5114-1-git-send-email-cunming.liang@intel.com> <1422842559-13617-1-git-send-email-cunming.liang@intel.com> <1422842559-13617-11-git-send-email-cunming.liang@intel.com> <54D7C074.20204@6wind.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v4 10/17] malloc: fix the issue of SOCKET_ID_ANY X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2015 17:43:40 -0000 Hi, On 02/09/2015 03:08 PM, Liang, Cunming wrote: > > >> -----Original Message----- >> From: Olivier MATZ [mailto:olivier.matz@6wind.com] >> Sent: Monday, February 09, 2015 4:01 AM >> To: Liang, Cunming; dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH v4 10/17] malloc: fix the issue of SOCKET_ID_ANY >> >> Hi, >> >> On 02/02/2015 03:02 AM, Cunming Liang wrote: >>> Add check for rte_socket_id(), avoid get unexpected return like (-1). >>> >>> Signed-off-by: Cunming Liang >>> --- >>> lib/librte_malloc/malloc_heap.h | 7 ++++++- >>> 1 file changed, 6 insertions(+), 1 deletion(-) >>> >>> diff --git a/lib/librte_malloc/malloc_heap.h b/lib/librte_malloc/malloc_heap.h >>> index b4aec45..a47136d 100644 >>> --- a/lib/librte_malloc/malloc_heap.h >>> +++ b/lib/librte_malloc/malloc_heap.h >>> @@ -44,7 +44,12 @@ extern "C" { >>> static inline unsigned >>> malloc_get_numa_socket(void) >>> { >>> - return rte_socket_id(); >>> + unsigned socket_id = rte_socket_id(); >>> + >>> + if (socket_id == (unsigned)SOCKET_ID_ANY) >>> + return 0; >>> + >>> + return socket_id; >>> } >>> >>> void * >>> >> >> The documentation off rte_malloc_socket() says: >> >> @param socket >> NUMA socket to allocate memory on. If SOCKET_ID_ANY is used, this >> function will behave the same as rte_malloc(). >> >> void * >> rte_malloc_socket(const char *type, size_t size, unsigned align, int >> socket); >> >> >> Your patch changes the behavior of rte_malloc() without explaining >> why, and the documentation becomes wrong. >> >> Can you explain why you need this change? > [LCM] I don't think I change the declaration of rte_malloc_socket(). > If socket_arg=SOCKET_ID_ANY, the socket value expect to the return value of malloc_get_numa_socket(). > The malloc_get_numa_socket() supposed to return the correct TLS _socket_id. > It works fine for normal cases. But as we change the default value of TLS _socket_id to SOCKET_ID_ANY. > And one lcore can run on multiple cpu, if all cpus in the cpuset are not belongs to one NUMA node, the _socket_id would be SOCKET_ID_ANY. > When user call rte_malloc_socket(SOCKET_ID_ANY), it does provide the same behavior as rte_malloc(). > They both will get socket_id from malloc_get_numa_socket(). The addition part is the exception path process. Sorry, I checked again, you are right.