From: Rosemarie O'Riorden <[email protected]> If anonymous memory mapping is supported by the kernel, it's better to run OVS entirely in memory rather than creating shared data structures. OVS doesn't work in multi-process mode, so there is no need to litter a filesystem.
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1949849 Signed-off-by: Rosemarie O'Riorden <[email protected]> --- Version 2: - Adjusted the commit message as per David's comments. - Restored original authorship (I hope that git send-email tracked that correctly as I didn't re-send someone else's patches for a while). - Minor rebase, typo fix. - Re-sending to remind others about the patch and address all the minor comments, so it's in a good shape. NEWS | 1 + acinclude.m4 | 6 ++++++ lib/dpdk.c | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/NEWS b/NEWS index 2a4856c1a..c47a6be50 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ Post-v2.16.0 by default. 'other_config:dpdk-socket-limit' can be set equal to the 'other_config:dpdk-socket-mem' to preserve the legacy memory limiting behavior. + * EAL argument --in-memory is applied by default if supported. * Add hardware offload support for matching IPv4/IPv6 frag types (experimental). * Add support for DPDK 21.11. diff --git a/acinclude.m4 b/acinclude.m4 index 8ab690f47..23cd6df44 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -472,6 +472,12 @@ AC_DEFUN([OVS_CHECK_DPDK], [ ], [[#include <rte_config.h>]]) ], [], [[#include <rte_config.h>]]) + AC_CHECK_DECL([MAP_HUGE_SHIFT], [ + AC_DEFINE([DPDK_IN_MEMORY_SUPPORTED], [1], [If MAP_HUGE_SHIFT is + defined, anonymous memory mapping is supported by the + kernel, and --in-memory can be used.]) + ], [], [[#include <sys/mman.h>]]) + # DPDK uses dlopen to load plugins. OVS_FIND_DEPENDENCY([dlopen], [dl], [libdl]) diff --git a/lib/dpdk.c b/lib/dpdk.c index b2ef31cd2..6cdd69bd2 100644 --- a/lib/dpdk.c +++ b/lib/dpdk.c @@ -405,6 +405,13 @@ dpdk_init__(const struct smap *ovs_other_config) svec_add(&args, ovs_get_program_name()); construct_dpdk_args(ovs_other_config, &args); +#ifdef DPDK_IN_MEMORY_SUPPORTED + if (!args_contains(&args, "--in-memory") && + !args_contains(&args, "--legacy-mem")) { + svec_add(&args, "--in-memory"); + } +#endif + if (args_contains(&args, "-c") || args_contains(&args, "-l")) { auto_determine = false; } -- 2.31.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
