app/testpmd: avoid pages being swapped out
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> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
This commit is contained in:
parent
e3f141879e
commit
1c036b16c2
@ -38,6 +38,7 @@
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
|
||||
@ -2322,6 +2323,11 @@ main(int argc, char** argv)
|
||||
if (diag < 0)
|
||||
rte_panic("Cannot init EAL\n");
|
||||
|
||||
if (mlockall(MCL_CURRENT | MCL_FUTURE)) {
|
||||
RTE_LOG(NOTICE, USER1, "mlockall() failed with error \"%s\"\n",
|
||||
strerror(errno));
|
||||
}
|
||||
|
||||
#ifdef RTE_LIBRTE_PDUMP
|
||||
/* initialize packet capture framework */
|
||||
rte_pdump_init(NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user