From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 76AAE5A43; Tue, 16 Aug 2016 09:37:03 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP; 16 Aug 2016 00:36:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,529,1464678000"; d="scan'208";a="866126625" Received: from smonroyx-mobl.ger.corp.intel.com (HELO [10.237.220.36]) ([10.237.220.36]) by orsmga003.jf.intel.com with ESMTP; 16 Aug 2016 00:36:44 -0700 To: "Harris, James R" , Thomas Monjalon , "users@dpdk.org" , "dev@dpdk.org" , "Richardson, Bruce" References: <1470871839.40000.48.camel@intel.com> <1549431.MJntLMElOg@xps13> Cc: "Verkamp, Daniel" From: Sergio Gonzalez Monroy Message-ID: <8b8e180e-a996-ef6e-cbf8-23028a194224@intel.com> Date: Tue, 16 Aug 2016 08:36:43 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [dpdk-users] rte_zmalloc() returning non-zeroed memory on FreeBSD 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: Tue, 16 Aug 2016 07:37:04 -0000 On 15/08/2016 18:23, Harris, James R wrote: > >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon >> Sent: Thursday, August 11, 2016 12:05 AM >> To: users@dpdk.org; dev@dpdk.org; Gonzalez Monroy, Sergio; Richardson, >> Bruce >> Cc: Verkamp, Daniel >> Subject: Re: [dpdk-dev] [dpdk-users] rte_zmalloc() returning non-zeroed >> memory on FreeBSD >> >> Hi, >> >> 2016-08-10 23:30, Verkamp, Daniel: >>> It seems that with DPDK 16.07, rte_zmalloc() and related functions no >>> longer return zeroed memory reliably on FreeBSD. >>> >>> I notice that commit b78c9175118f7d61022ddc5c62ce54a1bd73cea5 ("mem: >> do >>> not zero out memory on zmalloc") removed the explicit memset() that >> used >>> to ensure the buffer was zeroed; its log message says: >>> >>> "Zeroing out memory on rte_zmalloc_socket is not required anymore since >>> all allocated memory is already zeroed." >> On Linux, the memory is zeroed by the kernel. >> Then the zero value is maintained in the rte_malloc pool by rte_free. >> >>> However, I don't see how this is guaranteed (at least for FreeBSD), and >>> it is not true in practice. I've attached a minimized reproducer program - >>> running it twice in a row fails reliably for me. >>> >>> Is there a missing step in FreeBSD, or is it a more general problem for >>> other platforms? >> I guess the initial value from the kernel has been verified only on Linux. >> We could re-add a memset for FreeBSD. > The problem is that the FreeBSD contigmem driver does not re-zero the huge > pages each time they are mmap'd - they are only zeroed when contigmem > initially loads. I will push a patch for this shortly. So that is the case where we run the app more than once, right? I missed that, I only ran it once. Sergio