From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH]librte_eal:add heap lock in malloc_heap_get_stats Date: Fri, 06 Oct 2017 22:19:22 +0200 Message-ID: <16571873.8VHJB6EtNZ@xps> References: <8B0A0B0226AB0F47A8D0EBBBBA1F005102BC7F7D@DGGEML502-MBX.china.huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org, sergio.gonzalez.monroy@intel.com To: "liucheng (J)" Return-path: Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id D41181B1C1 for ; Fri, 6 Oct 2017 22:19:24 +0200 (CEST) In-Reply-To: <8B0A0B0226AB0F47A8D0EBBBBA1F005102BC7F7D@DGGEML502-MBX.china.huawei.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, We need a Signed-off-by to process your contribution. Thank you +Cc sergio.gonzalez.monroy@intel.com 21/09/2017 05:19, liucheng (J): > There is no lock in function malloc_heap_get_stats. When we call this function, the elem may free by other thread. > > the call stack: > Core was generated by `ovs-vswitchd unix:/usr/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:info'. > Program terminated with signal 11, Segmentation fault. > #0 malloc_heap_get_stats (heap=0x7f3abf08ee1c, socket_stats=socket_stats@entry=0x7ffce811ffc0) at /usr/src/debug/dpdk-16.04/lib/librte_eal/common/malloc_heap.c:198 > 198 socket_stats->heap_freesz_bytes += elem->size; > (gdb) bt > #0 malloc_heap_get_stats (heap=0x7f3abf08ee1c, socket_stats=socket_stats@entry=0x7ffce811ffc0) at /usr/src/debug/dpdk-16.04/lib/librte_eal/common/malloc_heap.c:198 > #1 0x00007f3abd6d6299 in rte_malloc_get_socket_stats (socket=socket@entry=0, socket_stats=socket_stats@entry=0x7ffce811ffc0) at /usr/src/debug/dpdk-16.04/lib/librte_eal/common/rte_malloc.c:214 > ...... > > lib/librte_eal/common/malloc_heap.c | 3 +++ > lib/librte_eal/common/malloc_heap.h | 2 +- > 2 files changed, 4 insertions(+), 1 deletion(-)