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 6A7E5DD2 for ; Mon, 25 Sep 2017 09:53:32 +0200 (CEST) Received: from lfbn-lil-1-182-75.w90-45.abo.wanadoo.fr ([90.45.31.75] helo=droids-corp.org) by mail.droids-corp.org with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dwOII-0003Ok-0T; Mon, 25 Sep 2017 09:59:11 +0200 Received: by droids-corp.org (sSMTP sendmail emulation); Mon, 25 Sep 2017 09:53:20 +0200 Date: Mon, 25 Sep 2017 09:53:20 +0200 From: Olivier MATZ To: Eelco Chaudron Cc: Thomas Monjalon , dev@dpdk.org, jingjing.wu@intel.com Message-ID: <20170925075319.agzytjfgai7usngs@platinum> References: <22990026376b08418cb0eb6f028840c03e89f47f.1505221429.git.echaudro@redhat.com> <4147502.SWF1kaKTU5@xps> <2ff0680b-b73f-fd1f-9f41-caa38a13bcde@redhat.com> <20170919072818.zbhjsfhpbqf4fqxz@neon> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [dpdk-dev] [PATCH] app/testpmd: adds mlockall() to fix pages X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Sep 2017 07:53:32 -0000 On Thu, Sep 21, 2017 at 02:24:28PM +0200, Eelco Chaudron wrote: > On 19/09/17 09:28, Olivier MATZ wrote: > > Hi, > > > > On Thu, Sep 14, 2017 at 09:22:38AM +0200, Eelco Chaudron wrote: > > > On 13/09/17 11:39, Thomas Monjalon wrote: > > > > 12/09/2017 15:08, Eelco Chaudron: > > > > > Call the mlockall() function, to attempt to lock all of its process > > > > > memory into physical RAM, and preventing the kernel from paging any > > > > > of its memory to disk. > > > > > > > > > > When using testpmd for performance testing, depending on the code path > > > > > taken, we see a couple of page faults in a row. These faults effect > > > > > the overall drop-rate of testpmd. On Linux the mlockall() call will > > > > > prefault all the pages of testpmd (and the DPDK libraries if linked > > > > > dynamically), even without LD_BIND_NOW. > > > > Does it work on FreeBSD? > > > I do not have a FreeBSD setup, but from the documentation I've read the call > > > is supported by FreeBSD. > > > If some one has a working setup, please give this patch a quick try. > > > > Is there any drawback? > > > > Do we need to add an option for it? > > > The only drawback I can think of is that with this change memory phyiscal > > > memory is consumed as pages are pre-loaded. > > > For testpmd (just loaded not doing anything) this is 2MB vs 35MB of memory > > > used. I do not think this yields an extra option. > > One small comment: the call to mlockall() will fail if we don't have > > the permissions. I guess it's not an issue, but I wonder if we should > > log it? > I did not at add a log, as the rte log subsystem is not yet initialized. > However we could add a printf("WARNING: mlockall() failed with error %s") > like message. What do you think? Since it's not critical, maybe NOTICE is better than WARNING. One more question: what would be the drawback of calling mlockall() after eal_init()? (rte_log would be initialized) Thanks, Olivier