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? Olivier