From patchwork Wed Mar 25 21:16:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob Kollanukkaran X-Patchwork-Id: 67144 X-Patchwork-Delegate: thomas@monjalon.net 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 9C404A058B; Wed, 25 Mar 2020 22:20:44 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 75EEA1C1BF; Wed, 25 Mar 2020 22:18:10 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 36E801C0B2 for ; Wed, 25 Mar 2020 22:18:08 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 02PLF2sj026587; Wed, 25 Mar 2020 14:18:07 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0818; bh=MLFrD/DBCDIwXiIsyfdVxUnoEjxdfHIF6OTw858XupU=; b=uXsBLK3gTRqwVbbJnlAcPQURkvH0yIg3MlD1aRMFXvKl82DmQoCdYEl0/vHXtx/NLcjL lWrI1IXOJ+NevbnMubtvZ90VMyltpO9bX0fYkFSmNjiYRNPc0x85dvdWDD7ZZAz/skKY 95oxWrpjtEqMvIVWpNXZ/qxx+VAAc6Ar+R8yX3aglwZmKwC9hQ/zNEqohymEABRrAU9D xP5N4LdWHIp7d/xdIAfeDA1E0RQvRCaz4QtFEzPWF+uhFkhE+YO+zbNt8AWebjgNJJGn in3Rm/4lXjCZntOLtT19SxRCfRzbH5UyKtpHnf0rKydpp5dLl/tnslG948dNN2Uglb/o cw== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 300bpcruyt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 25 Mar 2020 14:18:06 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 25 Mar 2020 14:18:04 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 25 Mar 2020 14:18:04 -0700 Received: from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14]) by maili.marvell.com (Postfix) with ESMTP id 4DED93F703F; Wed, 25 Mar 2020 14:17:58 -0700 (PDT) From: To: Thomas Monjalon , Anoob Joseph , Olivier Matz , Andrew Rybchenko , Bruce Richardson , Satha Rao , Vamsi Attunuru , Mahipal Challa , Shreyansh Jain , Hemant Agrawal , David Hunt , Konstantin Ananyev , Reshma Pattan , Cristian Dumitrescu , Jasvinder Singh , Akhil Goyal , Declan Doherty CC: , , , Date: Thu, 26 Mar 2020 02:46:01 +0530 Message-ID: <20200325211603.240288-32-jerinj@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200325211603.240288-1-jerinj@marvell.com> References: <20200318190241.3150971-1-jerinj@marvell.com> <20200325211603.240288-1-jerinj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.645 definitions=2020-03-25_11:2020-03-24, 2020-03-25 signatures=0 Subject: [dpdk-dev] [PATCH v2 31/32] mempool: add tracepoints 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" From: Sunil Kumar Kori Add tracepoints at important and mandatory APIs for tracing support. Signed-off-by: Sunil Kumar Kori --- MAINTAINERS | 2 + drivers/common/cpt/Makefile | 1 + drivers/mempool/ring/Makefile | 1 + drivers/mempool/ring/meson.build | 1 + drivers/raw/ioat/Makefile | 1 + drivers/raw/ioat/meson.build | 1 + drivers/raw/octeontx2_dma/Makefile | 1 + drivers/raw/octeontx2_dma/meson.build | 1 + drivers/raw/octeontx2_ep/Makefile | 1 + drivers/raw/octeontx2_ep/meson.build | 1 + drivers/raw/skeleton/Makefile | 1 + drivers/raw/skeleton/meson.build | 1 + lib/librte_distributor/Makefile | 1 + lib/librte_distributor/meson.build | 1 + lib/librte_ip_frag/Makefile | 1 + lib/librte_ip_frag/meson.build | 1 + lib/librte_mempool/Makefile | 3 + lib/librte_mempool/mempool_trace_points.c | 108 +++++++++++++++ lib/librte_mempool/meson.build | 7 +- lib/librte_mempool/rte_mempool.c | 16 +++ lib/librte_mempool/rte_mempool.h | 13 ++ lib/librte_mempool/rte_mempool_ops.c | 7 + lib/librte_mempool/rte_mempool_version.map | 26 ++++ lib/librte_mempool/rte_trace_mempool.h | 148 +++++++++++++++++++++ lib/librte_mempool/rte_trace_mempool_fp.h | 102 ++++++++++++++ lib/librte_reorder/Makefile | 1 + lib/librte_reorder/meson.build | 1 + lib/librte_sched/Makefile | 1 + lib/librte_sched/meson.build | 1 + lib/librte_security/Makefile | 1 + lib/librte_security/meson.build | 1 + lib/librte_table/Makefile | 1 + lib/librte_table/meson.build | 1 + 33 files changed, 451 insertions(+), 4 deletions(-) create mode 100644 lib/librte_mempool/mempool_trace_points.c create mode 100644 lib/librte_mempool/rte_trace_mempool.h create mode 100644 lib/librte_mempool/rte_trace_mempool_fp.h diff --git a/MAINTAINERS b/MAINTAINERS index 65acfc814..42712f67e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -208,6 +208,8 @@ F: lib/librte_eventdev/eventdev_trace_points.c F: lib/librte_eventdev/rte_trace_eventdev*.h F: lib/librte_cryptodev/cryptodev_trace_points.c F: lib/librte_cryptodev/rte_trace_cryptodev*.h +F: lib/librte_mempool/mempool_trace_points.c +F: lib/librte_mempool/rte_trace_mempool*.h Memory Allocation M: Anatoly Burakov diff --git a/drivers/common/cpt/Makefile b/drivers/common/cpt/Makefile index cab9da73c..9e4cab166 100644 --- a/drivers/common/cpt/Makefile +++ b/drivers/common/cpt/Makefile @@ -10,6 +10,7 @@ include $(RTE_SDK)/mk/rte.vars.mk LIB = librte_common_cpt.a CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API CFLAGS += -I$(RTE_SDK)/drivers/bus/pci EXPORT_MAP := rte_common_cpt_version.map diff --git a/drivers/mempool/ring/Makefile b/drivers/mempool/ring/Makefile index 8624502da..0b8b64598 100644 --- a/drivers/mempool/ring/Makefile +++ b/drivers/mempool/ring/Makefile @@ -10,6 +10,7 @@ LIB = librte_mempool_ring.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal -lrte_mempool -lrte_ring EXPORT_MAP := rte_mempool_ring_version.map diff --git a/drivers/mempool/ring/meson.build b/drivers/mempool/ring/meson.build index a021e908c..ec07b186e 100644 --- a/drivers/mempool/ring/meson.build +++ b/drivers/mempool/ring/meson.build @@ -1,4 +1,5 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +allow_experimental_apis = true sources = files('rte_mempool_ring.c') diff --git a/drivers/raw/ioat/Makefile b/drivers/raw/ioat/Makefile index 1609fe5e6..5c8c02bee 100644 --- a/drivers/raw/ioat/Makefile +++ b/drivers/raw/ioat/Makefile @@ -9,6 +9,7 @@ LIB = librte_rawdev_ioat.a # build flags CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal -lrte_rawdev LDLIBS += -lrte_pci -lrte_bus_pci diff --git a/drivers/raw/ioat/meson.build b/drivers/raw/ioat/meson.build index 0878418ae..b59847387 100644 --- a/drivers/raw/ioat/meson.build +++ b/drivers/raw/ioat/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright 2019 Intel Corporation +allow_experimental_apis = true build = dpdk_conf.has('RTE_ARCH_X86') reason = 'only supported on x86' sources = files('ioat_rawdev.c', diff --git a/drivers/raw/octeontx2_dma/Makefile b/drivers/raw/octeontx2_dma/Makefile index c64ca3497..180b23516 100644 --- a/drivers/raw/octeontx2_dma/Makefile +++ b/drivers/raw/octeontx2_dma/Makefile @@ -8,6 +8,7 @@ include $(RTE_SDK)/mk/rte.vars.mk LIB = librte_rawdev_octeontx2_dma.a CFLAGS += -O3 $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2/ CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2/ CFLAGS += -I$(RTE_SDK)/drivers/raw/octeontx2_dma/ diff --git a/drivers/raw/octeontx2_dma/meson.build b/drivers/raw/octeontx2_dma/meson.build index 11f74680a..b1862a7d3 100644 --- a/drivers/raw/octeontx2_dma/meson.build +++ b/drivers/raw/octeontx2_dma/meson.build @@ -2,6 +2,7 @@ # Copyright(C) 2019 Marvell International Ltd. # +allow_experimental_apis = true deps += ['bus_pci', 'common_octeontx2', 'rawdev'] sources = files('otx2_dpi_rawdev.c', 'otx2_dpi_msg.c', 'otx2_dpi_test.c') diff --git a/drivers/raw/octeontx2_ep/Makefile b/drivers/raw/octeontx2_ep/Makefile index 1a54bf56f..08aab53b5 100644 --- a/drivers/raw/octeontx2_ep/Makefile +++ b/drivers/raw/octeontx2_ep/Makefile @@ -10,6 +10,7 @@ LIB = librte_rawdev_octeontx2_ep.a # Build flags CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2/ CFLAGS += -I$(RTE_SDK)/drivers/raw/octeontx2_ep/ diff --git a/drivers/raw/octeontx2_ep/meson.build b/drivers/raw/octeontx2_ep/meson.build index 0e6338f76..633292f57 100644 --- a/drivers/raw/octeontx2_ep/meson.build +++ b/drivers/raw/octeontx2_ep/meson.build @@ -2,6 +2,7 @@ # Copyright(C) 2019 Marvell International Ltd. # +allow_experimental_apis = true deps += ['bus_pci', 'common_octeontx2', 'rawdev'] sources = files('otx2_ep_rawdev.c', 'otx2_ep_enqdeq.c', diff --git a/drivers/raw/skeleton/Makefile b/drivers/raw/skeleton/Makefile index 2ac66fbd4..9c7018992 100644 --- a/drivers/raw/skeleton/Makefile +++ b/drivers/raw/skeleton/Makefile @@ -10,6 +10,7 @@ LIB = librte_rawdev_skeleton.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal LDLIBS += -lrte_rawdev LDLIBS += -lrte_bus_vdev diff --git a/drivers/raw/skeleton/meson.build b/drivers/raw/skeleton/meson.build index b4a6ed08a..993ea332c 100644 --- a/drivers/raw/skeleton/meson.build +++ b/drivers/raw/skeleton/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright 2018 NXP +allow_experimental_apis = true deps += ['rawdev', 'kvargs', 'mbuf', 'bus_vdev'] sources = files('skeleton_rawdev.c', 'skeleton_rawdev_test.c') diff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile index fc32fb3a8..f6b5f12de 100644 --- a/lib/librte_distributor/Makefile +++ b/lib/librte_distributor/Makefile @@ -7,6 +7,7 @@ include $(RTE_SDK)/mk/rte.vars.mk LIB = librte_distributor.a CFLAGS += -O3 +CFLAGS += -DALLOW_EXPERIMENTAL_API CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev diff --git a/lib/librte_distributor/meson.build b/lib/librte_distributor/meson.build index 266af6434..01dd56597 100644 --- a/lib/librte_distributor/meson.build +++ b/lib/librte_distributor/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +allow_experimental_apis = true sources = files('rte_distributor.c', 'rte_distributor_single.c') if arch_subdir == 'x86' sources += files('rte_distributor_match_sse.c') diff --git a/lib/librte_ip_frag/Makefile b/lib/librte_ip_frag/Makefile index 6b80d9f1f..ae50762d2 100644 --- a/lib/librte_ip_frag/Makefile +++ b/lib/librte_ip_frag/Makefile @@ -7,6 +7,7 @@ include $(RTE_SDK)/mk/rte.vars.mk LIB = librte_ip_frag.a CFLAGS += -O3 +CFLAGS += -DALLOW_EXPERIMENTAL_API CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev LDLIBS += -lrte_hash diff --git a/lib/librte_ip_frag/meson.build b/lib/librte_ip_frag/meson.build index c5b9a4596..68bc2491a 100644 --- a/lib/librte_ip_frag/meson.build +++ b/lib/librte_ip_frag/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +allow_experimental_apis = true sources = files('rte_ipv4_fragmentation.c', 'rte_ipv6_fragmentation.c', 'rte_ipv4_reassembly.c', diff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile index a5649050b..91d181103 100644 --- a/lib/librte_mempool/Makefile +++ b/lib/librte_mempool/Makefile @@ -19,7 +19,10 @@ CFLAGS += -DALLOW_EXPERIMENTAL_API SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool.c SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool_ops.c SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += rte_mempool_ops_default.c +SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += mempool_trace_points.c # install includes SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include := rte_mempool.h +SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include += rte_trace_mempool.h +SYMLINK-$(CONFIG_RTE_LIBRTE_MEMPOOL)-include += rte_trace_mempool_fp.h include $(RTE_SDK)/mk/rte.lib.mk diff --git a/lib/librte_mempool/mempool_trace_points.c b/lib/librte_mempool/mempool_trace_points.c new file mode 100644 index 000000000..fbe23b93a --- /dev/null +++ b/lib/librte_mempool/mempool_trace_points.c @@ -0,0 +1,108 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(C) 2020 Marvell International Ltd. + */ + +#define RTE_TRACE_POINT_REGISTER_SELECT /* Select trace point register macros */ + +#include "rte_trace_mempool.h" + +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_ops_dequeue_bulk); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_ops_dequeue_contig_blocks); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_ops_enqueue_bulk); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_generic_put); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_put_bulk); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_generic_get); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_get_bulk); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_get_contig_blocks); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_create); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_create_empty); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_free); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_populate_iova); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_populate_virt); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_populate_default); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_populate_anon); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_cache_create); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_cache_free); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_default_cache); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_get_page_size); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_cache_flush); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_ops_populate); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_ops_alloc); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_ops_free); +RTE_TRACE_POINT_DEFINE(rte_trace_lib_mempool_set_ops_byname); + +RTE_INIT(mempool_trace_init) +{ + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_ops_dequeue_bulk, + lib.mempool.ops.deq.bulk, INFO); + + RTE_TRACE_POINT_REGISTER( + rte_trace_lib_mempool_ops_dequeue_contig_blocks, + lib.mempool.ops.deq.contig, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_ops_enqueue_bulk, + lib.mempool.ops.enq.bulk, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_generic_put, + lib.mempool.generic.put, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_put_bulk, + lib.mempool.put.bulk, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_generic_get, + lib.mempool.generic.get, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_get_bulk, + lib.mempool.get.bulk, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_get_contig_blocks, + lib.mempool.get.blocks, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_create, + lib.mempool.create, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_create_empty, + lib.mempool.create.empty, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_free, + lib.mempool.free, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_populate_iova, + lib.mempool.populate.iova, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_populate_virt, + lib.mempool.populate.virt, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_populate_default, + lib.mempool.populate.default, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_populate_anon, + lib.mempool.populate.anon, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_cache_create, + lib.mempool.cache_create, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_cache_free, + lib.mempool.cache.free, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_default_cache, + lib.mempool.default.cache, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_get_page_size, + lib.mempool.get.page.size, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_cache_flush, + lib.mempool.cache.flush, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_ops_populate, + lib.mempool.ops.populate, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_ops_alloc, + lib.mempool.ops.alloc, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_ops_free, + lib.mempool.ops.free, INFO); + + RTE_TRACE_POINT_REGISTER(rte_trace_lib_mempool_set_ops_byname, + lib.mempool.set.ops.byname, INFO); +} diff --git a/lib/librte_mempool/meson.build b/lib/librte_mempool/meson.build index f8710b61b..903e923c3 100644 --- a/lib/librte_mempool/meson.build +++ b/lib/librte_mempool/meson.build @@ -1,8 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -allow_experimental_apis = true - extra_flags = [] foreach flag: extra_flags @@ -12,8 +10,9 @@ foreach flag: extra_flags endforeach sources = files('rte_mempool.c', 'rte_mempool_ops.c', - 'rte_mempool_ops_default.c') -headers = files('rte_mempool.h') + 'rte_mempool_ops_default.c', 'mempool_trace_points.c') +headers = files('rte_mempool.h', 'rte_trace_mempool.h', + 'rte_trace_mempool_fp.h') deps += ['ring'] # memseg walk is not yet part of stable API diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 712c839a0..6cc0c7209 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -33,6 +33,7 @@ #include #include "rte_mempool.h" +#include "rte_trace_mempool.h" TAILQ_HEAD(rte_mempool_list, rte_tailq_entry); @@ -377,6 +378,8 @@ rte_mempool_populate_iova(struct rte_mempool *mp, char *vaddr, if (ret == 0) ret = -EINVAL; + rte_trace_lib_mempool_populate_iova(mp, vaddr, iova, len, free_cb, + opaque); return ret; } @@ -444,6 +447,8 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr, if (cnt == 0) return -EINVAL; + rte_trace_lib_mempool_populate_virt(mp, addr, len, pg_sz, free_cb, + opaque); return cnt; fail: @@ -473,6 +478,7 @@ rte_mempool_get_page_size(struct rte_mempool *mp, size_t *pg_sz) else *pg_sz = getpagesize(); + rte_trace_lib_mempool_get_page_size(mp, *pg_sz); return 0; } @@ -611,6 +617,7 @@ rte_mempool_populate_default(struct rte_mempool *mp) } } + rte_trace_lib_mempool_populate_default(mp); return mp->size; fail: @@ -701,6 +708,7 @@ rte_mempool_populate_anon(struct rte_mempool *mp) goto fail; } + rte_trace_lib_mempool_populate_anon(mp); return mp->populated_size; fail: @@ -732,6 +740,7 @@ rte_mempool_free(struct rte_mempool *mp) } rte_mcfg_tailq_write_unlock(); + rte_trace_lib_mempool_free(mp); rte_mempool_free_memchunks(mp); rte_mempool_ops_free(mp); rte_memzone_free(mp->mz); @@ -770,6 +779,7 @@ rte_mempool_cache_create(uint32_t size, int socket_id) mempool_cache_init(cache, size); + rte_trace_lib_mempool_cache_create(size, socket_id, cache); return cache; } @@ -781,6 +791,7 @@ rte_mempool_cache_create(uint32_t size, int socket_id) void rte_mempool_cache_free(struct rte_mempool_cache *cache) { + rte_trace_lib_mempool_cache_free(cache); rte_free(cache); } @@ -911,6 +922,8 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size, rte_mcfg_tailq_write_unlock(); rte_mcfg_mempool_write_unlock(); + rte_trace_lib_mempool_create_empty(name, n, elt_size, cache_size, + private_data_size, flags, mp); return mp; exit_unlock: @@ -963,6 +976,9 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size, if (obj_init) rte_mempool_obj_iter(mp, obj_init, obj_init_arg); + rte_trace_lib_mempool_create(name, n, elt_size, cache_size, + private_data_size, mp_init, mp_init_arg, + obj_init, obj_init_arg, flags, mp); return mp; fail: diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index c90cf3146..2d0b5ad46 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -51,6 +51,8 @@ #include #include +#include "rte_trace_mempool_fp.h" + #ifdef __cplusplus extern "C" { #endif @@ -736,6 +738,7 @@ rte_mempool_ops_dequeue_bulk(struct rte_mempool *mp, { struct rte_mempool_ops *ops; + rte_trace_lib_mempool_ops_dequeue_bulk(mp, obj_table, n); ops = rte_mempool_get_ops(mp->ops_index); return ops->dequeue(mp, obj_table, n); } @@ -761,6 +764,7 @@ rte_mempool_ops_dequeue_contig_blocks(struct rte_mempool *mp, ops = rte_mempool_get_ops(mp->ops_index); RTE_ASSERT(ops->dequeue_contig_blocks != NULL); + rte_trace_lib_mempool_ops_dequeue_contig_blocks(mp, first_obj_table, n); return ops->dequeue_contig_blocks(mp, first_obj_table, n); } @@ -783,6 +787,7 @@ rte_mempool_ops_enqueue_bulk(struct rte_mempool *mp, void * const *obj_table, { struct rte_mempool_ops *ops; + rte_trace_lib_mempool_ops_enqueue_bulk(mp, obj_table, n); ops = rte_mempool_get_ops(mp->ops_index); return ops->enqueue(mp, obj_table, n); } @@ -1264,6 +1269,8 @@ rte_mempool_default_cache(struct rte_mempool *mp, unsigned lcore_id) if (lcore_id >= RTE_MAX_LCORE) return NULL; + rte_trace_lib_mempool_default_cache(mp, lcore_id, + &mp->local_cache[lcore_id]); return &mp->local_cache[lcore_id]; } @@ -1283,6 +1290,7 @@ rte_mempool_cache_flush(struct rte_mempool_cache *cache, cache = rte_mempool_default_cache(mp, rte_lcore_id()); if (cache == NULL || cache->len == 0) return; + rte_trace_lib_mempool_cache_flush(cache, mp); rte_mempool_ops_enqueue_bulk(mp, cache->objs, cache->len); cache->len = 0; } @@ -1362,6 +1370,7 @@ static __rte_always_inline void rte_mempool_generic_put(struct rte_mempool *mp, void * const *obj_table, unsigned int n, struct rte_mempool_cache *cache) { + rte_trace_lib_mempool_generic_put(mp, obj_table, n, cache); __mempool_check_cookies(mp, obj_table, n, 0); __mempool_generic_put(mp, obj_table, n, cache); } @@ -1386,6 +1395,7 @@ rte_mempool_put_bulk(struct rte_mempool *mp, void * const *obj_table, { struct rte_mempool_cache *cache; cache = rte_mempool_default_cache(mp, rte_lcore_id()); + rte_trace_lib_mempool_put_bulk(mp, obj_table, n, cache); rte_mempool_generic_put(mp, obj_table, n, cache); } @@ -1507,6 +1517,7 @@ rte_mempool_generic_get(struct rte_mempool *mp, void **obj_table, ret = __mempool_generic_get(mp, obj_table, n, cache); if (ret == 0) __mempool_check_cookies(mp, obj_table, n, 1); + rte_trace_lib_mempool_generic_get(mp, obj_table, n, cache); return ret; } @@ -1537,6 +1548,7 @@ rte_mempool_get_bulk(struct rte_mempool *mp, void **obj_table, unsigned int n) { struct rte_mempool_cache *cache; cache = rte_mempool_default_cache(mp, rte_lcore_id()); + rte_trace_lib_mempool_get_bulk(mp, obj_table, n, cache); return rte_mempool_generic_get(mp, obj_table, n, cache); } @@ -1606,6 +1618,7 @@ rte_mempool_get_contig_blocks(struct rte_mempool *mp, __MEMPOOL_CONTIG_BLOCKS_STAT_ADD(mp, get_fail, n); } + rte_trace_lib_mempool_get_contig_blocks(mp, first_obj_table, n); return ret; } diff --git a/lib/librte_mempool/rte_mempool_ops.c b/lib/librte_mempool/rte_mempool_ops.c index 22c5251eb..c1b24a1f3 100644 --- a/lib/librte_mempool/rte_mempool_ops.c +++ b/lib/librte_mempool/rte_mempool_ops.c @@ -11,6 +11,8 @@ #include #include +#include "rte_trace_mempool.h" + /* indirect jump table to support external memory pools. */ struct rte_mempool_ops_table rte_mempool_ops_table = { .sl = RTE_SPINLOCK_INITIALIZER, @@ -74,6 +76,7 @@ rte_mempool_ops_alloc(struct rte_mempool *mp) { struct rte_mempool_ops *ops; + rte_trace_lib_mempool_ops_alloc(mp); ops = rte_mempool_get_ops(mp->ops_index); return ops->alloc(mp); } @@ -84,6 +87,7 @@ rte_mempool_ops_free(struct rte_mempool *mp) { struct rte_mempool_ops *ops; + rte_trace_lib_mempool_ops_free(mp); ops = rte_mempool_get_ops(mp->ops_index); if (ops->free == NULL) return; @@ -130,6 +134,8 @@ rte_mempool_ops_populate(struct rte_mempool *mp, unsigned int max_objs, ops = rte_mempool_get_ops(mp->ops_index); + rte_trace_lib_mempool_ops_populate(mp, max_objs, vaddr, iova, len, + obj_cb, obj_cb_arg); if (ops->populate == NULL) return rte_mempool_op_populate_default(mp, max_objs, vaddr, iova, len, obj_cb, @@ -178,5 +184,6 @@ rte_mempool_set_ops_byname(struct rte_mempool *mp, const char *name, mp->ops_index = i; mp->pool_config = pool_config; + rte_trace_lib_mempool_set_ops_byname(mp, name, pool_config); return 0; } diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map index d002dfc46..2d2594635 100644 --- a/lib/librte_mempool/rte_mempool_version.map +++ b/lib/librte_mempool/rte_mempool_version.map @@ -45,4 +45,30 @@ EXPERIMENTAL { rte_mempool_get_page_size; rte_mempool_op_calc_mem_size_helper; rte_mempool_op_populate_helper; + + # added in 20.05 + __rte_trace_lib_mempool_ops_dequeue_bulk; + __rte_trace_lib_mempool_ops_dequeue_contig_blocks; + __rte_trace_lib_mempool_ops_enqueue_bulk; + __rte_trace_lib_mempool_generic_put; + __rte_trace_lib_mempool_put_bulk; + __rte_trace_lib_mempool_generic_get; + __rte_trace_lib_mempool_get_bulk; + __rte_trace_lib_mempool_get_contig_blocks; + __rte_trace_lib_mempool_create; + __rte_trace_lib_mempool_create_empty; + __rte_trace_lib_mempool_free; + __rte_trace_lib_mempool_populate_iova; + __rte_trace_lib_mempool_populate_virt; + __rte_trace_lib_mempool_populate_default; + __rte_trace_lib_mempool_populate_anon; + __rte_trace_lib_mempool_cache_create; + __rte_trace_lib_mempool_cache_free; + __rte_trace_lib_mempool_default_cache; + __rte_trace_lib_mempool_get_page_size; + __rte_trace_lib_mempool_cache_flush; + __rte_trace_lib_mempool_ops_populate; + __rte_trace_lib_mempool_ops_alloc; + __rte_trace_lib_mempool_ops_free; + __rte_trace_lib_mempool_set_ops_byname; }; diff --git a/lib/librte_mempool/rte_trace_mempool.h b/lib/librte_mempool/rte_trace_mempool.h new file mode 100644 index 000000000..12af2e301 --- /dev/null +++ b/lib/librte_mempool/rte_trace_mempool.h @@ -0,0 +1,148 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(C) 2020 Marvell International Ltd. + */ + +#ifndef _RTE_TRACE_MEMPOOL_H_ +#define _RTE_TRACE_MEMPOOL_H_ + +/** + * @file + * + * APIs for mempool trace support + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "rte_mempool.h" + +#include +#include + +RTE_TRACE_POINT( + rte_trace_lib_mempool_create, + RTE_TRACE_POINT_ARGS(const char *name, uint32_t nb_elts, + uint32_t elt_size, uint32_t cache_size, + uint32_t private_data_size, void *mp_init, + void *mp_init_arg, void *obj_init, + void *obj_init_arg, uint32_t flags, + struct rte_mempool *mempool), + rte_trace_ctf_string(name); rte_trace_ctf_u32(nb_elts); + rte_trace_ctf_u32(elt_size); rte_trace_ctf_u32(cache_size); + rte_trace_ctf_u32(private_data_size); rte_trace_ctf_ptr(mp_init); + rte_trace_ctf_ptr(mp_init_arg); rte_trace_ctf_ptr(obj_init); + rte_trace_ctf_ptr(obj_init_arg); rte_trace_ctf_u32(flags); + rte_trace_ctf_ptr(mempool); rte_trace_ctf_i32(mempool->ops_index); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_create_empty, + RTE_TRACE_POINT_ARGS(const char *name, uint32_t nb_elts, + uint32_t elt_size, uint32_t cache_size, + uint32_t private_data_size, uint32_t flags, + struct rte_mempool *mempool), + rte_trace_ctf_string(name); rte_trace_ctf_u32(nb_elts); + rte_trace_ctf_u32(elt_size); rte_trace_ctf_u32(cache_size); + rte_trace_ctf_u32(private_data_size); rte_trace_ctf_u32(flags); + rte_trace_ctf_ptr(mempool); rte_trace_ctf_i32(mempool->ops_index); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_free, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_populate_iova, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, void *vaddr, + rte_iova_t iova, size_t len, void *free_cb, + void *opaque), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); + rte_trace_ctf_ptr(vaddr); rte_trace_ctf_u64(iova); + rte_trace_ctf_long(len); rte_trace_ctf_ptr(free_cb); + rte_trace_ctf_ptr(opaque); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_populate_virt, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, void *addr, + size_t len, size_t pg_sz, void *free_cb, + void *opaque), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); + rte_trace_ctf_ptr(addr); rte_trace_ctf_long(len); + rte_trace_ctf_long(pg_sz); rte_trace_ctf_ptr(free_cb); + rte_trace_ctf_ptr(opaque); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_populate_default, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_populate_anon, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_cache_create, + RTE_TRACE_POINT_ARGS(uint32_t size, int socket_id, + struct rte_mempool_cache *cache), + rte_trace_ctf_u32(size); rte_trace_ctf_i32(socket_id); + rte_trace_ctf_ptr(cache); rte_trace_ctf_u32(cache->len); + rte_trace_ctf_u32(cache->flushthresh); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_cache_free, + RTE_TRACE_POINT_ARGS(void *cache), + rte_trace_ctf_ptr(cache); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_get_page_size, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, size_t pg_sz), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); + rte_trace_ctf_long(pg_sz); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_ops_populate, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, uint32_t max_objs, + void *vaddr, uint64_t iova, size_t len, + void *obj_cb, void *obj_cb_arg), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); + rte_trace_ctf_u32(max_objs); rte_trace_ctf_ptr(vaddr); + rte_trace_ctf_u64(iova); rte_trace_ctf_long(len); + rte_trace_ctf_ptr(obj_cb); rte_trace_ctf_ptr(obj_cb_arg); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_ops_alloc, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_ops_free, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); +) + +RTE_TRACE_POINT( + rte_trace_lib_mempool_set_ops_byname, + RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, const char *name, + void *pool_config), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_string(mempool->name); + rte_trace_ctf_string(name); rte_trace_ctf_ptr(pool_config); +) + +#ifdef __cplusplus +} +#endif + +#endif /* _RTE_TRACE_MEMPOOL_H_ */ diff --git a/lib/librte_mempool/rte_trace_mempool_fp.h b/lib/librte_mempool/rte_trace_mempool_fp.h new file mode 100644 index 000000000..7aad5e3c2 --- /dev/null +++ b/lib/librte_mempool/rte_trace_mempool_fp.h @@ -0,0 +1,102 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(C) 2020 Marvell International Ltd. + */ + +#ifndef _RTE_TRACE_MEMPOOL_FP_H_ +#define _RTE_TRACE_MEMPOOL_FP_H_ + +/** + * @file + * + * Mempool fast path API for trace support + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_ops_dequeue_bulk, + RTE_TRACE_POINT_ARGS(void *mempool, void **obj_table, + uint32_t nb_objs), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(obj_table); + rte_trace_ctf_u32(nb_objs); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_ops_dequeue_contig_blocks, + RTE_TRACE_POINT_ARGS(void *mempool, void **first_obj_table, + uint32_t nb_objs), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(first_obj_table); + rte_trace_ctf_u32(nb_objs); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_ops_enqueue_bulk, + RTE_TRACE_POINT_ARGS(void *mempool, void * const *obj_table, + uint32_t nb_objs), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(obj_table); + rte_trace_ctf_u32(nb_objs); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_generic_put, + RTE_TRACE_POINT_ARGS(void *mempool, void * const *obj_table, + uint32_t nb_objs, void *cache), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(obj_table); + rte_trace_ctf_u32(nb_objs); rte_trace_ctf_ptr(cache); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_put_bulk, + RTE_TRACE_POINT_ARGS(void *mempool, void * const *obj_table, + uint32_t nb_objs, void *cache), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(obj_table); + rte_trace_ctf_u32(nb_objs); rte_trace_ctf_ptr(cache); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_generic_get, + RTE_TRACE_POINT_ARGS(void *mempool, void * const *obj_table, + uint32_t nb_objs, void *cache), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(obj_table); + rte_trace_ctf_u32(nb_objs); rte_trace_ctf_ptr(cache); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_get_bulk, + RTE_TRACE_POINT_ARGS(void *mempool, void **obj_table, + uint32_t nb_objs, void *cache), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(obj_table); + rte_trace_ctf_u32(nb_objs); rte_trace_ctf_ptr(cache); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_get_contig_blocks, + RTE_TRACE_POINT_ARGS(void *mempool, void **first_obj_table, + uint32_t nb_objs), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_ptr(first_obj_table); + rte_trace_ctf_u32(nb_objs); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_default_cache, + RTE_TRACE_POINT_ARGS(void *mempool, uint32_t lcore_id, + void *default_cache), + rte_trace_ctf_ptr(mempool); rte_trace_ctf_u32(lcore_id); + rte_trace_ctf_ptr(default_cache); +) + +RTE_TRACE_POINT_DP( + rte_trace_lib_mempool_cache_flush, + RTE_TRACE_POINT_ARGS(void *cache, void *mempool), + rte_trace_ctf_ptr(cache); rte_trace_ctf_ptr(mempool); +) + +#ifdef __cplusplus +} +#endif + +#endif /* _RTE_TRACE_MEMPOOL_FP_H_ */ diff --git a/lib/librte_reorder/Makefile b/lib/librte_reorder/Makefile index 1914411d5..26e7bbfbc 100644 --- a/lib/librte_reorder/Makefile +++ b/lib/librte_reorder/Makefile @@ -7,6 +7,7 @@ include $(RTE_SDK)/mk/rte.vars.mk LIB = librte_reorder.a CFLAGS += -O3 +CFLAGS += -DALLOW_EXPERIMENTAL_API CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf diff --git a/lib/librte_reorder/meson.build b/lib/librte_reorder/meson.build index 03aed53d9..964f01d9b 100644 --- a/lib/librte_reorder/meson.build +++ b/lib/librte_reorder/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +allow_experimental_apis = true sources = files('rte_reorder.c') headers = files('rte_reorder.h') deps += ['mbuf'] diff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile index aee93a120..4ad7a18cd 100644 --- a/lib/librte_sched/Makefile +++ b/lib/librte_sched/Makefile @@ -10,6 +10,7 @@ LIB = librte_sched.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lm LDLIBS += -lrt diff --git a/lib/librte_sched/meson.build b/lib/librte_sched/meson.build index f85d64df8..ba178a126 100644 --- a/lib/librte_sched/meson.build +++ b/lib/librte_sched/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +allow_experimental_apis = true sources = files('rte_sched.c', 'rte_red.c', 'rte_approx.c') headers = files('rte_sched.h', 'rte_sched_common.h', 'rte_red.h', 'rte_approx.h') diff --git a/lib/librte_security/Makefile b/lib/librte_security/Makefile index 825eaeff8..bf530e99a 100644 --- a/lib/librte_security/Makefile +++ b/lib/librte_security/Makefile @@ -9,6 +9,7 @@ LIB = librte_security.a # build flags CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal -lrte_mempool # library source files diff --git a/lib/librte_security/meson.build b/lib/librte_security/meson.build index 5679c8b5c..ada46b0c6 100644 --- a/lib/librte_security/meson.build +++ b/lib/librte_security/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017-2019 Intel Corporation +allow_experimental_apis = true sources = files('rte_security.c') headers = files('rte_security.h', 'rte_security_driver.h') deps += ['mempool', 'cryptodev'] diff --git a/lib/librte_table/Makefile b/lib/librte_table/Makefile index 6ad8a6b17..88cb909be 100644 --- a/lib/librte_table/Makefile +++ b/lib/librte_table/Makefile @@ -10,6 +10,7 @@ LIB = librte_table.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_port LDLIBS += -lrte_lpm -lrte_hash ifeq ($(CONFIG_RTE_LIBRTE_ACL),y) diff --git a/lib/librte_table/meson.build b/lib/librte_table/meson.build index 71d134768..05703e67c 100644 --- a/lib/librte_table/meson.build +++ b/lib/librte_table/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +allow_experimental_apis = true sources = files('rte_table_acl.c', 'rte_table_lpm.c', 'rte_table_lpm_ipv6.c',