Add tracepoints at important and mandatory APIs for tracing support.
Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
Acked-by: David Marchand <david.marchand@redhat.com>
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'commands.c', 'main.c', 'parse_obj_list.c'
)
include $(RTE_SDK)/mk/rte.vars.mk
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# require the power library
build = dpdk_conf.has('RTE_LIBRTE_POWER')
+allow_experimental_apis = true
deps += ['distributor', 'power']
sources = files(
'main.c'
CFLAGS += -O3 -pthread -I$(SRCDIR)/../lib
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
LDLIBS += -L$(subst ethtool-app,lib,$(RTE_OUTPUT))/lib
LDLIBS += -lrte_ethtool
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += 'eventdev'
sources = files(
'main.c',
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'main.c',
)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'main.c'
)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
endif
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
build = dpdk_conf.has('RTE_LIBRTE_PMD_IOAT_RAWDEV')
deps += ['rawdev_ioat']
PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += ['ip_frag', 'lpm']
sources = files(
'main.c'
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += ['lpm', 'ip_frag']
sources = files(
'main.c'
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += 'hash'
sources = files(
'main.c'
include $(RTE_SDK)/mk/rte.vars.mk
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
pqos = cc.find_library('pqos', required: false)
build = pqos.found()
ext_deps += pqos
+allow_experimental_apis = true
cflags += '-I/usr/local/include' # assume pqos lib installed in /usr/local
sources = files(
'cat.c', 'l2fwd-cat.c'
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
endif
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += 'eventdev'
sources = files(
'main.c',
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
endif
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += ['jobstats', 'timer']
sources = files(
'main.c'
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
LDFLAGS += -lrt
include $(RTE_SDK)/mk/rte.extapp.mk
SRCS-y := main.c
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)/../
+CFLAGS += -DALLOW_EXPERIMENTAL_API
LDFLAGS += -lrt
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
ext_deps += cc.find_library('rt')
deps += 'timer'
sources = files(
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += ['acl', 'lpm', 'hash']
sources = files(
'main.c'
CFLAGS += -I$(SRCDIR)
CFLAGS += -O3 $(USER_FLAGS)
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
endif
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += ['hash', 'lpm', 'eventdev']
sources = files(
'l3fwd_em.c', 'l3fwd_lpm.c', 'l3fwd_event.c',
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
endif
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'main.c'
)
CFLAGS += $(WERROR_FLAGS) -O3
CFLAGS += -I$(SRCDIR)/../shared
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
includes += include_directories('../shared')
+allow_experimental_apis = true
sources = files(
'client.c'
)
includes += include_directories('../shared')
+allow_experimental_apis = true
sources = files(
'args.c', 'init.c', 'main.c'
)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'commands.c', 'main.c'
)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'mp_commands.c', 'main.c'
)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'main.c'
)
PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
if host_machine.system() != 'linux'
build = false
endif
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
endif
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += 'reorder'
sources = files(
'main.c'
include $(RTE_SDK)/examples/performance-thread/common/common.mk
CFLAGS += -O3 -g $(USER_FLAGS) $(INCLUDES) $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
build = dpdk_conf.has('RTE_ARCH_X86_64')
deps += ['timer', 'lpm']
+allow_experimental_apis = true
# get the performance thread (pt) architecture subdir
if dpdk_conf.has('RTE_ARCH_ARM64')
CFLAGS += -g -O3 $(USER_FLAGS) $(INCLUDES)
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
LDFLAGS += -lpthread
build = dpdk_conf.has('RTE_ARCH_X86_64') or dpdk_conf.has('RTE_ARCH_ARM64')
deps += ['timer']
+allow_experimental_apis = true
# get the performance thread (pt) architecture subdir
if dpdk_conf.has('RTE_ARCH_ARM64')
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'ptpclient.c'
)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += 'meter'
sources = files(
'main.c', 'rte_policer.c'
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += ['sched', 'cfgfile']
sources = files(
'app_thread.c', 'args.c', 'cfg_file.c', 'cmdline.c',
CFLAGS += $(WERROR_FLAGS) -O3
CFLAGS += -I$(SRCDIR)/../shared
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
name = 'efd_node'
+allow_experimental_apis = true
deps += ['hash']
sources += files('node.c')
includes += include_directories('../shared')
CFLAGS += $(WERROR_FLAGS) -O3
CFLAGS += -I$(SRCDIR)/../shared
+CFLAGS += -DALLOW_EXPERIMENTAL_API
include $(RTE_SDK)/mk/rte.extapp.mk
name = 'efd_server'
+allow_experimental_apis = true
deps += 'efd'
sources += files('args.c', 'init.c', 'main.c')
includes += include_directories('../shared')
include $(RTE_SDK)/mk/rte.vars.mk
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'main.c'
)
include $(RTE_SDK)/mk/rte.vars.mk
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'basicfwd.c'
)
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
deps += 'timer'
sources = files(
'main.c'
CFLAGS += -O3 -I$(RTE_SDK)/lib/librte_power/
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
LDLIBS += -lvirt
deps += ['pmd_ixgbe']
endif
+allow_experimental_apis = true
sources = files(
'channel_manager.c', 'channel_monitor.c', 'main.c', 'parse.c', 'power_manager.c', 'vm_power_cli.c'
)
include $(RTE_SDK)/mk/rte.vars.mk
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
EXTRA_CFLAGS += -O3
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'main.c'
)
include $(RTE_SDK)/mk/rte.vars.mk
CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
# To build this example as a standalone application with an already-installed
# DPDK instance, use 'make'
+allow_experimental_apis = true
sources = files(
'main.c'
)
SRCS-y += rte_tm.c
SRCS-y += rte_mtr.c
SRCS-y += ethdev_profile.c
+SRCS-y += ethdev_trace_points.c
#
# Export include files
SYMLINK-y-include += rte_ethdev_driver.h
SYMLINK-y-include += rte_ethdev_core.h
SYMLINK-y-include += rte_ethdev_pci.h
+SYMLINK-y-include += rte_ethdev_trace.h
+SYMLINK-y-include += rte_ethdev_trace_fp.h
SYMLINK-y-include += rte_ethdev_vdev.h
SYMLINK-y-include += rte_eth_ctrl.h
SYMLINK-y-include += rte_dev_info.h
--- /dev/null
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#define RTE_TRACE_POINT_REGISTER_SELECT
+
+#include <rte_ethdev_trace.h>
+
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_configure);
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_rxq_setup);
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_txq_setup);
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_start);
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_stop);
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_close);
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_rx_burst);
+RTE_TRACE_POINT_DEFINE(rte_ethdev_trace_tx_burst);
+
+RTE_INIT(ethdev_trace_init)
+{
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_configure,
+ lib.ethdev.configure);
+
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_rxq_setup,
+ lib.ethdev.rxq.setup);
+
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_txq_setup,
+ lib.ethdev.txq.setup);
+
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_start,
+ lib.ethdev.start);
+
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_stop,
+ lib.ethdev.stop);
+
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_close,
+ lib.ethdev.close);
+
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_rx_burst,
+ lib.ethdev.rx.burst);
+
+ RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_tx_burst,
+ lib.ethdev.tx.burst);
+}
name = 'ethdev'
sources = files('ethdev_private.c',
'ethdev_profile.c',
+ 'ethdev_trace_points.c',
'rte_class_eth.c',
'rte_ethdev.c',
'rte_flow.c',
'rte_ethdev_driver.h',
'rte_ethdev_core.h',
'rte_ethdev_pci.h',
+ 'rte_ethdev_trace.h',
+ 'rte_ethdev_trace_fp.h',
'rte_ethdev_vdev.h',
'rte_eth_ctrl.h',
'rte_dev_info.h',
#include <rte_class.h>
#include <rte_ether.h>
+#include "rte_ethdev_trace.h"
#include "rte_ethdev.h"
#include "rte_ethdev_driver.h"
#include "ethdev_profile.h"
goto reset_queues;
}
+ rte_ethdev_trace_configure(port_id, nb_rx_q, nb_tx_q, dev_conf, 0);
return 0;
reset_queues:
rte_eth_dev_rx_queue_config(dev, 0);
rollback:
memcpy(&dev->data->dev_conf, &orig_conf, sizeof(dev->data->dev_conf));
+ rte_ethdev_trace_configure(port_id, nb_rx_q, nb_tx_q, dev_conf, ret);
return ret;
}
RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->link_update, -ENOTSUP);
(*dev->dev_ops->link_update)(dev, 0);
}
+
+ rte_ethdev_trace_start(port_id);
return 0;
}
dev->data->dev_started = 0;
(*dev->dev_ops->dev_stop)(dev);
+ rte_ethdev_trace_stop(port_id);
}
int
dev->data->dev_started = 0;
(*dev->dev_ops->dev_close)(dev);
+ rte_ethdev_trace_close(port_id);
/* check behaviour flag - temporary for PMD migration */
if ((dev->data->dev_flags & RTE_ETH_DEV_CLOSE_REMOVE) != 0) {
/* new behaviour: send event + reset state + free all data */
dev->data->min_rx_buf_size = mbp_buf_size;
}
+ rte_ethdev_trace_rxq_setup(port_id, rx_queue_id, nb_rx_desc, mp,
+ rx_conf, ret);
return eth_err(port_id, ret);
}
return -EINVAL;
}
+ rte_ethdev_trace_txq_setup(port_id, tx_queue_id, nb_tx_desc, tx_conf);
return eth_err(port_id, (*dev->dev_ops->tx_queue_setup)(dev,
tx_queue_id, nb_tx_desc, socket_id, &local_conf));
}
#include <rte_config.h>
#include <rte_ether.h>
+#include "rte_ethdev_trace_fp.h"
#include "rte_dev_info.h"
extern int rte_eth_dev_logtype;
}
#endif
+ rte_ethdev_trace_rx_burst(port_id, queue_id, (void **)rx_pkts, nb_rx);
return nb_rx;
}
}
#endif
+ rte_ethdev_trace_tx_burst(port_id, queue_id, (void **)tx_pkts,
+ nb_pkts);
return (*dev->tx_pkt_burst)(dev->data->tx_queues[queue_id], tx_pkts, nb_pkts);
}
--- /dev/null
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#ifndef _RTE_ETHDEV_TRACE_H_
+#define _RTE_ETHDEV_TRACE_H_
+
+/**
+ * @file
+ *
+ * API for ethdev trace support
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rte_trace_point.h>
+
+#include "rte_ethdev.h"
+
+RTE_TRACE_POINT(
+ rte_ethdev_trace_configure,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t nb_rx_q,
+ uint16_t nb_tx_q, const struct rte_eth_conf *dev_conf, int rc),
+ rte_trace_point_emit_u16(port_id);
+ rte_trace_point_emit_u16(nb_rx_q);
+ rte_trace_point_emit_u16(nb_tx_q);
+ rte_trace_point_emit_u32(dev_conf->link_speeds);
+ rte_trace_point_emit_u32(dev_conf->rxmode.mq_mode);
+ rte_trace_point_emit_u32(dev_conf->rxmode.max_rx_pkt_len);
+ rte_trace_point_emit_u64(dev_conf->rxmode.offloads);
+ rte_trace_point_emit_u32(dev_conf->txmode.mq_mode);
+ rte_trace_point_emit_u64(dev_conf->txmode.offloads);
+ rte_trace_point_emit_u32(dev_conf->lpbk_mode);
+ rte_trace_point_emit_int(rc);
+)
+
+RTE_TRACE_POINT(
+ rte_ethdev_trace_rxq_setup,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t rx_queue_id,
+ uint16_t nb_rx_desc, void *mp,
+ const struct rte_eth_rxconf *rx_conf, int rc),
+ rte_trace_point_emit_u16(port_id);
+ rte_trace_point_emit_u16(rx_queue_id);
+ rte_trace_point_emit_u16(nb_rx_desc);
+ rte_trace_point_emit_ptr(mp);
+ rte_trace_point_emit_u8(rx_conf->rx_thresh.pthresh);
+ rte_trace_point_emit_u8(rx_conf->rx_thresh.hthresh);
+ rte_trace_point_emit_u8(rx_conf->rx_thresh.wthresh);
+ rte_trace_point_emit_u8(rx_conf->rx_drop_en);
+ rte_trace_point_emit_u8(rx_conf->rx_deferred_start);
+ rte_trace_point_emit_u64(rx_conf->offloads);
+ rte_trace_point_emit_int(rc);
+)
+
+RTE_TRACE_POINT(
+ rte_ethdev_trace_txq_setup,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t tx_queue_id,
+ uint16_t nb_tx_desc, const struct rte_eth_txconf *tx_conf),
+ rte_trace_point_emit_u16(port_id);
+ rte_trace_point_emit_u16(tx_queue_id);
+ rte_trace_point_emit_u16(nb_tx_desc);
+ rte_trace_point_emit_u8(tx_conf->tx_thresh.pthresh);
+ rte_trace_point_emit_u8(tx_conf->tx_thresh.hthresh);
+ rte_trace_point_emit_u8(tx_conf->tx_thresh.wthresh);
+ rte_trace_point_emit_u8(tx_conf->tx_deferred_start);
+ rte_trace_point_emit_u16(tx_conf->tx_free_thresh);
+ rte_trace_point_emit_u64(tx_conf->offloads);
+)
+
+RTE_TRACE_POINT(
+ rte_ethdev_trace_start,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id),
+ rte_trace_point_emit_u16(port_id);
+)
+
+RTE_TRACE_POINT(
+ rte_ethdev_trace_stop,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id),
+ rte_trace_point_emit_u16(port_id);
+)
+
+RTE_TRACE_POINT(
+ rte_ethdev_trace_close,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id),
+ rte_trace_point_emit_u16(port_id);
+)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_ETHDEV_TRACE_H_ */
--- /dev/null
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#ifndef _RTE_ETHDEV_TRACE_FP_H_
+#define _RTE_ETHDEV_TRACE_FP_H_
+
+/**
+ * @file
+ *
+ * API for ethdev trace support
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rte_trace_point.h>
+
+RTE_TRACE_POINT_FP(
+ rte_ethdev_trace_rx_burst,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id,
+ void **pkt_tbl, uint16_t nb_rx),
+ rte_trace_point_emit_u16(port_id);
+ rte_trace_point_emit_u16(queue_id);
+ rte_trace_point_emit_ptr(pkt_tbl);
+ rte_trace_point_emit_u16(nb_rx);
+)
+
+RTE_TRACE_POINT_FP(
+ rte_ethdev_trace_tx_burst,
+ RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id,
+ void **pkts_tbl, uint16_t nb_pkts),
+ rte_trace_point_emit_u16(port_id);
+ rte_trace_point_emit_u16(queue_id);
+ rte_trace_point_emit_ptr(pkts_tbl);
+ rte_trace_point_emit_u16(nb_pkts);
+)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_ETHDEV_TRACE_FP_H_ */
# added in 20.02
rte_flow_dev_dump;
+
+ # added in 20.05
+ __rte_ethdev_trace_configure;
+ __rte_ethdev_trace_rxq_setup;
+ __rte_ethdev_trace_txq_setup;
+ __rte_ethdev_trace_start;
+ __rte_ethdev_trace_stop;
+ __rte_ethdev_trace_close;
+ __rte_ethdev_trace_rx_burst;
+ __rte_ethdev_trace_tx_burst;
};