All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aaron Conole <aconole@redhat.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: Aaron Conole <aconole@redhat.com>,
	Eelco Chaudron <echaudro@redhat.com>,
	dev@dpdk.org, jingjing.wu@intel.com, john.mcnamara@intel.com
Subject: Re: [PATCH] app/testpmd: adds mlockall() to fix pages
Date: Tue, 12 Sep 2017 16:29:11 -0400	[thread overview]
Message-ID: <f7tfubry82w.fsf@dhcp-25-97.bos.redhat.com> (raw)
In-Reply-To: <1863612.973jloI4LL@xps> (Thomas Monjalon's message of "Tue, 12 Sep 2017 22:14:01 +0200")

Thomas Monjalon <thomas@monjalon.net> writes:

> 12/09/2017 16:50, Aaron Conole:
>> Eelco Chaudron <echaudro@redhat.com> writes:
>> 
>> > 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.
>> >
>> > Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
>> 
>> Acked-by: Aaron Conole <aconole@redhat.com>
>
> It is interesting, but why make it in testpmd?
>
> Maybe it should be documented in this guide:
> 	http://dpdk.org/doc/guides/linux_gsg/nic_perf_intel_platform.html

Well, I'm not sure what the user would be able to do to get the
prefaulting performance without having a library they use with
LD_PRELOAD and a function with the constructor attribute which does the
same thing, AND export LD_BIND_NOW before linking starts.

The LD_BIND_NOW simply does the symbol resolution, but there's no
guarantee that it will fault all the code pages in to process space, and
without an mlockall(), I'm not sure that there's any kind of guarantee
that they don't get swapped out of resident memory (which also leads to
later page faults).

Maybe I misunderstood the question?

  reply	other threads:[~2017-09-12 20:29 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-12 13:08 [PATCH] app/testpmd: adds mlockall() to fix pages Eelco Chaudron
2017-09-12 14:50 ` Aaron Conole
2017-09-12 20:14   ` Thomas Monjalon
2017-09-12 20:29     ` Aaron Conole [this message]
2017-09-12 22:13       ` Thomas Monjalon
2017-09-13  8:55         ` Eelco Chaudron
2017-09-13 12:28         ` Aaron Conole
2017-09-13  9:15 ` Maxime Coquelin
2017-09-13  9:39 ` Thomas Monjalon
2017-09-14  7:22   ` Eelco Chaudron
2017-09-19  7:28     ` Olivier MATZ
2017-09-21 12:24       ` Eelco Chaudron
2017-09-25  7:53         ` Olivier MATZ
2017-09-29  7:59           ` Eelco Chaudron
2017-09-29  8:07 ` Sergio Gonzalez Monroy
2017-09-29  8:15   ` Eelco Chaudron
2017-09-29  9:27     ` Sergio Gonzalez Monroy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f7tfubry82w.fsf@dhcp-25-97.bos.redhat.com \
    --to=aconole@redhat.com \
    --cc=dev@dpdk.org \
    --cc=echaudro@redhat.com \
    --cc=jingjing.wu@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.