From patchwork Wed Feb 17 06:40:57 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Uvarov X-Patchwork-Id: 62088 Delivered-To: patch@linaro.org Received: by 10.112.43.199 with SMTP id y7csp2105875lbl; Tue, 16 Feb 2016 22:41:48 -0800 (PST) X-Received: by 10.55.73.6 with SMTP id w6mr32035512qka.82.1455691308598; Tue, 16 Feb 2016 22:41:48 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id e66si44752564qgf.125.2016.02.16.22.41.48; Tue, 16 Feb 2016 22:41:48 -0800 (PST) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dkim=neutral (body hash did not verify) header.i=@linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 1CE296672E; Wed, 17 Feb 2016 06:41:48 +0000 (UTC) Authentication-Results: lists.linaro.org; dkim=fail reason="verification failed; unprotected key" header.d=linaro.org header.i=@linaro.org header.b=TciC5XzP; dkim-adsp=none (unprotected policy); dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id DCCBD66753; Wed, 17 Feb 2016 06:41:13 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id D72CE61945; Wed, 17 Feb 2016 06:41:09 +0000 (UTC) Received: from mail-lb0-f169.google.com (mail-lb0-f169.google.com [209.85.217.169]) by lists.linaro.org (Postfix) with ESMTPS id 2927261945 for ; Wed, 17 Feb 2016 06:41:08 +0000 (UTC) Received: by mail-lb0-f169.google.com with SMTP id bc4so3779510lbc.2 for ; Tue, 16 Feb 2016 22:41:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3EK2EP0J/2QmglT1f8+T+s0HSRCd83vP+Rm66slSFiY=; b=TciC5XzPia6EzX4Ldi/PAosZZbZ/nuzp+VX5AGAnsRryXqr5hfp1T56qnThAoykUFc R9MRvOEVf9PiNKbKLBbJ1NpzuvbOEbeZuqm1T1vZftoPuSgVBNluU/o1jT4MMqWDZ4B+ 7P8UBCH0Pfc38JdxqIkqJx7EeL4/NYgWrCr/w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3EK2EP0J/2QmglT1f8+T+s0HSRCd83vP+Rm66slSFiY=; b=jdAp7NBol0eApKtI0Eqy3z6WZP7NvHx2OpVfLNaegWRJ9eASX7GZsExgmO+zAOezZi 4xA7AhIQfgtXKEqUQOy4o7PCo9b8x0Zwpj5CZfIqecwfj4Y6wjOfgHqvwZJmHW7qUnuV nytSFaX+MiTUigc4pAnS1Y973tQmpX8nyZTw/zgMUBNfKo79uCGyn1RwR6W3zTmONw7q P7hMsh9F9n2hxyGu27MWBERF4PQW0GWiGCmkN/oL7SqcO+DYMB2cSK/T+AztJ/XL/YYh jU2EOMmuhkfSaFl6/VITJTd6TwQS9ceWwfYf1Gp3S2Uw8ilw7xYXyMbMLbzP78M6j141 9/Zw== X-Gm-Message-State: AG10YOQeodddIJm80WWP+AvadeLzZmQv5Dpv6XKGA3NslBnRpacHFaAb1lSOakI6jYw2N/jRsOA= X-Received: by 10.112.151.134 with SMTP id uq6mr9590133lbb.18.1455691267113; Tue, 16 Feb 2016 22:41:07 -0800 (PST) Received: from localhost.localdomain (ppp91-76-173-134.pppoe.mtu-net.ru. [91.76.173.134]) by smtp.gmail.com with ESMTPSA id n185sm4618350lfd.11.2016.02.16.22.41.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 16 Feb 2016 22:41:06 -0800 (PST) From: Maxim Uvarov To: lng-odp@lists.linaro.org Date: Wed, 17 Feb 2016 09:40:57 +0300 Message-Id: <1455691258-11567-2-git-send-email-maxim.uvarov@linaro.org> X-Mailer: git-send-email 2.7.1.250.gff4ea60 In-Reply-To: <1455691258-11567-1-git-send-email-maxim.uvarov@linaro.org> References: <1455691258-11567-1-git-send-email-maxim.uvarov@linaro.org> X-Topics: patch Subject: [lng-odp] [API-NEXT PATCHv2 1/2] linux-generic: pktio: add option to enable and disable ipc pktio X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" 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 --- 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 diff --git a/configure.ac b/configure.ac index 257f8c3..200d565 100644 --- a/configure.ac +++ b/configure.ac @@ -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], diff --git a/platform/linux-generic/m4/configure.m4 b/platform/linux-generic/m4/configure.m4 index 2ac4799..b8c1c52 100644 --- a/platform/linux-generic/m4/configure.m4 +++ b/platform/linux-generic/m4/configure.m4 @@ -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 diff --git a/platform/linux-generic/m4/odp_ipc.m4 b/platform/linux-generic/m4/odp_ipc.m4 new file mode 100644 index 0000000..29506a0 --- /dev/null +++ b/platform/linux-generic/m4/odp_ipc.m4 @@ -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 diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index 78ccc0f..9eaa0c8 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -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) diff --git a/platform/linux-generic/pktio/io_ops.c b/platform/linux-generic/pktio/io_ops.c index 15aa160..5824785 100644 --- a/platform/linux-generic/pktio/io_ops.c +++ b/platform/linux-generic/pktio/io_ops.c @@ -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, diff --git a/platform/linux-generic/test/Makefile.am b/platform/linux-generic/test/Makefile.am index 1011437..09ace38 100644 --- a/platform/linux-generic/test/Makefile.am +++ b/platform/linux-generic/test/Makefile.am @@ -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)