From patchwork Fri Jun 12 21:24:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Timothy McDaniel X-Patchwork-Id: 71458 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0E8F6A00BE; Fri, 12 Jun 2020 23:26:55 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 804581BF9E; Fri, 12 Jun 2020 23:26:26 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 16E2A1BF75 for ; Fri, 12 Jun 2020 23:26:23 +0200 (CEST) IronPort-SDR: NMUzkmURIoqR93ku34d0fuaXjX2op1uUQwGJGIFIGhTvPRfIDewx6jT50L106O+k8GUSqxLWEU P+sanansSrxw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jun 2020 14:26:22 -0700 IronPort-SDR: 3G4YpKibvSnVLOJLxxScOj9/6yGbC14G+amMfXtKnTEJtl1N5ciA+YIEA06aCZCNsDREzo6HYj EjtzyyoVjMLw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,504,1583222400"; d="scan'208";a="272035771" Received: from txasoft-yocto.an.intel.com ([10.123.72.192]) by orsmga003.jf.intel.com with ESMTP; 12 Jun 2020 14:26:21 -0700 From: "McDaniel, Timothy" To: jerinj@marvell.com Cc: dev@dpdk.org, gage.eads@intel.com, harry.van.haaren@intel.com Date: Fri, 12 Jun 2020 16:24:11 -0500 Message-Id: <20200612212434.6852-5-timothy.mcdaniel@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20200612212434.6852-1-timothy.mcdaniel@intel.com> References: <20200612212434.6852-1-timothy.mcdaniel@intel.com> Subject: [dpdk-dev] [PATCH 04/27] event/dlb: add make and meson build infrastructure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Change-Id: I7fc0656b531dded6a95fbb0777c3b0dd5209ba61 Signed-off-by: McDaniel, Timothy --- config/common_base | 17 +++++++++++++++++ config/rte_config.h | 6 ++++++ drivers/event/Makefile | 5 +++++ drivers/event/dlb/Makefile | 36 ++++++++++++++++++++++++++++++++++++ drivers/event/dlb/meson.build | 16 ++++++++++++++++ drivers/event/meson.build | 3 +++ 6 files changed, 83 insertions(+) create mode 100644 drivers/event/dlb/Makefile create mode 100644 drivers/event/dlb/meson.build diff --git a/config/common_base b/config/common_base index c7d5c7321..cb2d0dd0c 100644 --- a/config/common_base +++ b/config/common_base @@ -789,6 +789,23 @@ CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=n CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=n # +# Compile PMD for dlb event device +# +CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV=y +# Specify an upper bound on cycles between each CQ access when hard polling +CONFIG_RTE_LIBRTE_PMD_DLB_POLL_INTERVAL=1000 +# Specify control state to use when executing UMWAIT instruction. +# If 0, then use CO.2, which has a slower wakeup time, but greater +# power savings. +# If 1, then use C0.1, which has a faster wakeup time, but smaller +# power savings. +CONFIG_RTE_LIBRTE_PMD_DLB_UMWAIT_CTL_STATE=0 +# Suppress statistics calculation +CONFIG_RTE_LIBRTE_PMD_DLB_QUELL_STATS=n +# Specify software credit quanta +CONFIG_RTE_LIBRTE_PMD_DLB_SW_CREDIT_QUANTA=32 + +# # Compile raw device support # EXPERIMENTAL: API may change without prior notice # diff --git a/config/rte_config.h b/config/rte_config.h index e9201fd46..839c0001d 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -133,4 +133,10 @@ /* QEDE PMD defines */ #define RTE_LIBRTE_QEDE_FW "" +/* DLB PMD defines */ +#define RTE_LIBRTE_PMD_DLB_POLL_INTERVAL 1000 +#define RTE_LIBRTE_PMD_DLB_UMWAIT_CTL_STATE 0 +#undef RTE_LIBRTE_PMD_DLB_QUELL_STATS +#define RTE_LIBRTE_PMD_DLB_SW_CREDIT_QUANTA 32 + #endif /* _RTE_CONFIG_H_ */ diff --git a/drivers/event/Makefile b/drivers/event/Makefile index 86be41b9e..125b5e8fa 100644 --- a/drivers/event/Makefile +++ b/drivers/event/Makefile @@ -16,5 +16,10 @@ ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy) DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2 endif DIRS-$(CONFIG_RTE_LIBRTE_PMD_OPDL_EVENTDEV) += opdl +# DLB limited to x86 architectures +ifneq ($(filter y,$(CONFIG_RTE_ARCH_X86_64) \ + $(CONFIG_RTE_ARCH_X86)),) +DIRS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += dlb +endif include $(RTE_SDK)/mk/rte.subdir.mk diff --git a/drivers/event/dlb/Makefile b/drivers/event/dlb/Makefile new file mode 100644 index 000000000..f32235a46 --- /dev/null +++ b/drivers/event/dlb/Makefile @@ -0,0 +1,36 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2016-2020 Intel Corporation. + +include $(RTE_SDK)/mk/rte.vars.mk + +# library name +LIB = librte_pmd_dlb_eventdev.a + +# build flags +CFLAGS += -O3 -pthread +CFLAGS += $(WERROR_FLAGS) +# rte_mp_ APIs are still marked experimental +CFLAGS += -DALLOW_EXPERIMENTAL_API +LDLIBS += -lrte_eal -lrte_eventdev -lrte_mbuf -lrte_kvargs -lrte_ring +LDLIBS += -lrte_mempool -lpthread -lrte_pci -lrte_bus_pci + +# library version +LIBABIVER := 1 + +# versioning export map +EXPORT_MAP := rte_pmd_dlb_event_version.map + +# library source files +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += dlb.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += dlb_iface.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += dlb_xstats.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += rte_pmd_dlb.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += dlb_selftest.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += pf/dlb_pf.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += pf/dlb_main.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_DLB_EVENTDEV) += pf/base/dlb_resource.c + +# export include files +SYMLINK-y-include += rte_pmd_dlb.h + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/event/dlb/meson.build b/drivers/event/dlb/meson.build new file mode 100644 index 000000000..9c6a5d6a1 --- /dev/null +++ b/drivers/event/dlb/meson.build @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2019-2020 Intel Corporation + +sources = files('dlb.c', + 'dlb_iface.c', + 'dlb_xstats.c', + 'rte_pmd_dlb.c', + 'dlb_selftest.c', + 'pf/dlb_pf.c', + 'pf/dlb_main.c', + 'pf/base/dlb_resource.c' +) + +allow_experimental_apis = true +deps += ['mbuf', 'mempool', 'ring', 'pci', 'bus_pci'] +install_headers('rte_pmd_dlb.h') diff --git a/drivers/event/meson.build b/drivers/event/meson.build index 50d30c53f..decad5569 100644 --- a/drivers/event/meson.build +++ b/drivers/event/meson.build @@ -6,6 +6,9 @@ if not (toolchain == 'gcc' and cc.version().version_compare('<4.8.6') and dpdk_conf.has('RTE_ARCH_ARM64')) drivers += 'octeontx' endif +if dpdk_conf.has('RTE_ARCH_X86_64') or dpdk_conf.has('RTE_ARCH_X86') + drivers += 'dlb' +endif std_deps = ['eventdev', 'kvargs'] config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD' driver_name_fmt = 'rte_pmd_@0@_event'