@@ -85,6 +85,7 @@ AC_SUBST([platform_with_platform_test], ["platform/${with_platform}/test"])
# Prepare default values for platform specific optional features
##########################################################################
netmap_support=no
+pktio_ipc_support=no
##########################################################################
# Run platform specific checks and settings
@@ -102,7 +103,7 @@ fi
##########################################################################
AM_CONDITIONAL([netmap_support], [test x$netmap_support = xyes ])
AM_CONDITIONAL([HAVE_PCAP], [test $have_pcap = yes])
-
+AM_CONDITIONAL([pktio_ipc_support], [test $pktio_ipc_support = yes])
AC_ARG_WITH([sdk-install-path],
AC_HELP_STRING([--with-sdk-install-path=DIR path to external libs and headers],
@@ -21,6 +21,7 @@ m4_include([platform/linux-generic/m4/odp_openssl.m4])
m4_include([platform/linux-generic/m4/odp_netmap.m4])
m4_include([platform/linux-generic/m4/odp_dpdk.m4])
m4_include([platform/linux-generic/m4/odp_pcap.m4])
+m4_include([platform/linux-generic/m4/odp_ipc.m4])
AC_CONFIG_FILES([platform/linux-generic/Makefile
platform/linux-generic/test/Makefile
new file mode 100644
@@ -0,0 +1,29 @@
+##########################################################################
+# Enable IPC pktio support
+##########################################################################
+AC_ARG_ENABLE([pktio_ipc_support],
+ [ --enable-pktio_ipc-support include ipc IO support],
+ [if test x$enableval = xyes; then
+ pktio_ipc_support=yes
+ fi])
+
+##########################################################################
+# Save and set temporary compilation flags
+##########################################################################
+OLD_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS"
+
+##########################################################################
+# Check for DPDK availability
+##########################################################################
+if test x$pktio_ipc_support = xyes
+then
+ ODP_CFLAGS="$ODP_CFLAGS -DODP_PKTIO_IPC"
+else
+ pktio_ipc_support=no
+fi
+
+##########################################################################
+# Restore old saved variables
+##########################################################################
+CPPFLAGS=$OLD_CPPFLAGS
@@ -421,7 +421,11 @@ odp_pool_t _pool_create(const char *name,
odp_pool_t odp_pool_create(const char *name,
odp_pool_param_t *params)
{
+#ifdef ODP_PKTIO_IPC
return _pool_create(name, params, ODP_SHM_PROC);
+#else
+ return _pool_create(name, params, 0);
+#endif
}
odp_pool_t odp_pool_lookup(const char *name)
@@ -21,7 +21,9 @@ const pktio_if_ops_t * const pktio_if_ops[] = {
#ifdef HAVE_PCAP
&pcap_pktio_ops,
#endif
+#ifdef ODP_PKTIO_IPC
&ipc_pktio_ops,
+#endif
&tap_pktio_ops,
&sock_mmap_pktio_ops,
&sock_mmsg_pktio_ops,
@@ -1,12 +1,11 @@
include $(top_srcdir)/test/Makefile.inc
TESTS_ENVIRONMENT += TEST_DIR=${top_builddir}/test/validation
-ODP_MODULES = pktio pktio_ipc ring
+ODP_MODULES = pktio ring
if test_vald
TESTS = pktio/pktio_run \
pktio/pktio_run_tap \
- pktio_ipc/pktio_ipc_run \
ring/ringtest$(EXEEXT) \
${top_builddir}/test/validation/atomic/atomic_main$(EXEEXT) \
${top_builddir}/test/validation/barrier/barrier_main$(EXEEXT) \
@@ -38,6 +37,10 @@ SUBDIRS = $(ODP_MODULES)
if HAVE_PCAP
TESTS += pktio/pktio_run_pcap
endif
+if pktio_ipc_support
+TESTS += pktio_ipc/pktio_ipc_run
+SUBDIRS += pktio_ipc
+endif
endif
dist_check_SCRIPTS = run-test tests-validation.env $(LOG_COMPILER)
With more options to enable/disable features it's more easy to isolate and debug problem if any. For now I have suspitious that in CI make check runs in parallel with other make checks which share the same pool memory. I.e. one process can corrupt memory for other process. Moving IPC to option it will be easy to debug that. Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> --- configure.ac | 3 ++- platform/linux-generic/m4/configure.m4 | 1 + platform/linux-generic/m4/odp_ipc.m4 | 29 +++++++++++++++++++++++++++++ platform/linux-generic/odp_pool.c | 4 ++++ platform/linux-generic/pktio/io_ops.c | 2 ++ platform/linux-generic/test/Makefile.am | 7 +++++-- 6 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 platform/linux-generic/m4/odp_ipc.m4