All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] app/testpmd: adds mlockall() to fix pages
@ 2017-09-12 13:08 Eelco Chaudron
  2017-09-12 14:50 ` Aaron Conole
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Eelco Chaudron @ 2017-09-12 13:08 UTC (permalink / raw)
  To: jingjing.wu; +Cc: dev

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>
---
 app/test-pmd/testpmd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 7d4013941..80f3c3e8e 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -38,6 +38,7 @@
 #include <string.h>
 #include <time.h>
 #include <fcntl.h>
+#include <sys/mman.h>
 #include <sys/types.h>
 #include <errno.h>
 
@@ -2292,6 +2293,8 @@ main(int argc, char** argv)
 	signal(SIGINT, signal_handler);
 	signal(SIGTERM, signal_handler);
 
+	mlockall(MCL_CURRENT | MCL_FUTURE);
+
 	diag = rte_eal_init(argc, argv);
 	if (diag < 0)
 		rte_panic("Cannot init EAL\n");
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2017-09-29  9:27 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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.