From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D6A67A00C4; Thu, 4 Aug 2022 15:50:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C3A3642BE0; Thu, 4 Aug 2022 15:50:03 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id CF87042BD9 for ; Thu, 4 Aug 2022 15:50:02 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 274CHYfI020978; Thu, 4 Aug 2022 06:47:36 -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=pfpt0220; bh=W0xEx8RZo+rU+q0PKcBQ061/4mG9OzfImRa64uyA1n4=; b=AzosckasoxGLPeu0WUuU1vofj63QYw/lDenHD8fyH5qhcewKmJurKY/a6oxiGpxzIj3V 4xT7XrYcgozq2f0KRpsiWPO6c4+4hZkPa2OQMhsPt2/0eP5fvYYNE3/xoMMZ82tCeYek e1lM725OT+okqrI14H4thvPr46gc1wLHjITbSJOYgznNas23l+e1j7uDNyN4ZSIvgFXj GwNZRCO/Yy5beDwdGhmtksB/V4yxDQMKcN2rp0oftpx9UERnUjNKYf+Rj2AlYyINJYsU U+j0yaKEvE2sUPK2Ek0E7KZqmIH2b74z6JheyiKbEop4ep91m+D+RraUmb47Udgwr4lW YQ== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3hqgf1xr7k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 04 Aug 2022 06:47:36 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Thu, 4 Aug 2022 06:47:34 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 4 Aug 2022 06:47:34 -0700 Received: from hyd1349.t110.caveonetworks.com.com (unknown [10.29.45.13]) by maili.marvell.com (Postfix) with ESMTP id 791043F705C; Thu, 4 Aug 2022 06:47:13 -0700 (PDT) From: Ankur Dwivedi To: CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Ankur Dwivedi Subject: [PATCH 5/6] ethdev: add trace points for driver Date: Thu, 4 Aug 2022 19:14:29 +0530 Message-ID: <20220804134430.6192-6-adwivedi@marvell.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20220804134430.6192-1-adwivedi@marvell.com> References: <20220804134430.6192-1-adwivedi@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: gFZ-iJH2smNziLRFb2-vRoIrk5nUWXcK X-Proofpoint-ORIG-GUID: gFZ-iJH2smNziLRFb2-vRoIrk5nUWXcK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-04_03,2022-08-04_02,2022-06-22_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Adds trace points for ethdev driver specific functions in ethdev lib. Signed-off-by: Ankur Dwivedi --- lib/ethdev/ethdev_driver.c | 29 +++++ lib/ethdev/ethdev_trace_points.c | 66 ++++++++++ lib/ethdev/rte_ethdev_trace.h | 200 +++++++++++++++++++++++++++++++ lib/ethdev/version.map | 22 ++++ 4 files changed, 317 insertions(+) diff --git a/lib/ethdev/ethdev_driver.c b/lib/ethdev/ethdev_driver.c index a285f213f0..74ec57f5fe 100644 --- a/lib/ethdev/ethdev_driver.c +++ b/lib/ethdev/ethdev_driver.c @@ -5,6 +5,7 @@ #include #include +#include "rte_ethdev_trace.h" #include "ethdev_driver.h" #include "ethdev_private.h" @@ -113,6 +114,7 @@ rte_eth_dev_allocate(const char *name) unlock: rte_spinlock_unlock(ð_dev_shared_data->ownership_lock); + rte_ethdev_trace_allocate(name, eth_dev); return eth_dev; } @@ -121,6 +123,7 @@ rte_eth_dev_allocated(const char *name) { struct rte_eth_dev *ethdev; + rte_ethdev_trace_allocated(name); eth_dev_shared_data_prepare(); rte_spinlock_lock(ð_dev_shared_data->ownership_lock); @@ -162,6 +165,7 @@ rte_eth_dev_attach_secondary(const char *name) } rte_spinlock_unlock(ð_dev_shared_data->ownership_lock); + rte_ethdev_trace_attach_secondary(name, eth_dev); return eth_dev; } @@ -173,6 +177,7 @@ rte_eth_dev_callback_process(struct rte_eth_dev *dev, struct rte_eth_dev_callback dev_cb; int rc = 0; + rte_ethdev_trace_callback_process(dev, event, ret_param); rte_spinlock_lock(ð_dev_cb_lock); TAILQ_FOREACH(cb_lst, &(dev->link_intr_cbs), next) { if (cb_lst->cb_fn == NULL || cb_lst->event != event) @@ -195,6 +200,7 @@ rte_eth_dev_callback_process(struct rte_eth_dev *dev, void rte_eth_dev_probing_finish(struct rte_eth_dev *dev) { + rte_ethdev_trace_probing_finish(dev); if (dev == NULL) return; @@ -214,6 +220,7 @@ rte_eth_dev_probing_finish(struct rte_eth_dev *dev) int rte_eth_dev_release_port(struct rte_eth_dev *eth_dev) { + rte_ethdev_trace_release_port(eth_dev); if (eth_dev == NULL) return -EINVAL; @@ -264,6 +271,9 @@ rte_eth_dev_create(struct rte_device *device, const char *name, struct rte_eth_dev *ethdev; int retval; + rte_ethdev_trace_create(device, name, priv_data_size, + ethdev_bus_specific_init, bus_init_params, + ethdev_init, init_params); RTE_FUNC_PTR_OR_ERR_RET(*ethdev_init, -EINVAL); if (rte_eal_process_type() == RTE_PROC_PRIMARY) { @@ -324,6 +334,7 @@ rte_eth_dev_destroy(struct rte_eth_dev *ethdev, { int ret; + rte_ethdev_trace_destroy(ethdev, ethdev_uninit); ethdev = rte_eth_dev_allocated(ethdev->data->name); if (!ethdev) return -ENODEV; @@ -342,6 +353,7 @@ rte_eth_dev_get_by_name(const char *name) { uint16_t pid; + rte_ethdev_trace_get_by_name(name); if (rte_eth_dev_get_port_by_name(name, &pid)) return NULL; @@ -351,6 +363,7 @@ rte_eth_dev_get_by_name(const char *name) int rte_eth_dev_is_rx_hairpin_queue(struct rte_eth_dev *dev, uint16_t queue_id) { + rte_ethdev_trace_is_rx_hairpin_queue(dev, queue_id); if (dev->data->rx_queue_state[queue_id] == RTE_ETH_QUEUE_STATE_HAIRPIN) return 1; return 0; @@ -359,6 +372,7 @@ rte_eth_dev_is_rx_hairpin_queue(struct rte_eth_dev *dev, uint16_t queue_id) int rte_eth_dev_is_tx_hairpin_queue(struct rte_eth_dev *dev, uint16_t queue_id) { + rte_ethdev_trace_is_tx_hairpin_queue(dev, queue_id); if (dev->data->tx_queue_state[queue_id] == RTE_ETH_QUEUE_STATE_HAIRPIN) return 1; return 0; @@ -367,6 +381,7 @@ rte_eth_dev_is_tx_hairpin_queue(struct rte_eth_dev *dev, uint16_t queue_id) void rte_eth_dev_internal_reset(struct rte_eth_dev *dev) { + rte_ethdev_trace_internal_reset(dev, dev->data->dev_started); if (dev->data->dev_started) { RTE_ETHDEV_LOG(ERR, "Port %u must be stopped to allow reset\n", dev->data->port_id); @@ -451,6 +466,7 @@ rte_eth_devargs_parse(const char *dargs, struct rte_eth_devargs *eth_da) unsigned int i; int result = 0; + rte_eth_trace_devargs_parse(dargs, eth_da); memset(eth_da, 0, sizeof(*eth_da)); result = eth_dev_devargs_tokenise(&args, dargs); @@ -495,6 +511,7 @@ rte_eth_dma_zone_free(const struct rte_eth_dev *dev, const char *ring_name, const struct rte_memzone *mz; int rc = 0; + rte_eth_trace_dma_zone_free(dev, ring_name, queue_id); rc = eth_dev_dma_mzone_name(z_name, sizeof(z_name), dev->data->port_id, queue_id, ring_name); if (rc >= RTE_MEMZONE_NAMESIZE) { @@ -520,6 +537,7 @@ rte_eth_dma_zone_reserve(const struct rte_eth_dev *dev, const char *ring_name, const struct rte_memzone *mz; int rc; + rte_eth_trace_dma_zone_reserve(dev, ring_name, queue_id, size, align, socket_id); rc = eth_dev_dma_mzone_name(z_name, sizeof(z_name), dev->data->port_id, queue_id, ring_name); if (rc >= RTE_MEMZONE_NAMESIZE) { @@ -553,6 +571,8 @@ rte_eth_hairpin_queue_peer_bind(uint16_t cur_port, uint16_t cur_queue, { struct rte_eth_dev *dev; + rte_eth_trace_hairpin_queue_peer_bind(cur_port, cur_queue, peer_info, + direction); if (peer_info == NULL) return -EINVAL; @@ -571,6 +591,7 @@ rte_eth_hairpin_queue_peer_unbind(uint16_t cur_port, uint16_t cur_queue, { struct rte_eth_dev *dev; + rte_eth_trace_hairpin_queue_peer_unbind(cur_port, cur_queue, direction); /* No need to check the validity again. */ dev = &rte_eth_devices[cur_port]; RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->hairpin_queue_peer_unbind, @@ -588,6 +609,8 @@ rte_eth_hairpin_queue_peer_update(uint16_t peer_port, uint16_t peer_queue, { struct rte_eth_dev *dev; + rte_eth_trace_hairpin_queue_peer_update(peer_port, peer_queue, cur_info, + peer_info, direction); /* Current queue information is not mandatory. */ if (peer_info == NULL) return -EINVAL; @@ -626,6 +649,8 @@ rte_eth_ip_reassembly_dynfield_register(int *field_offset, int *flag_offset) if (flag_offset != NULL) *flag_offset = offset; + rte_eth_trace_ip_reassembly_dynfield_register(*field_offset, + *flag_offset); return 0; } @@ -729,6 +754,8 @@ rte_eth_representor_id_get(uint16_t port_id, } out: free(info); + rte_eth_trace_representor_id_get(port_id, type, controller, pf, + representor_port, *repr_id); return ret; } @@ -745,6 +772,7 @@ rte_eth_switch_domain_alloc(uint16_t *domain_id) eth_dev_switch_domains[i].state = RTE_ETH_SWITCH_DOMAIN_ALLOCATED; *domain_id = i; + rte_eth_trace_switch_domain_alloc(*domain_id); return 0; } } @@ -755,6 +783,7 @@ rte_eth_switch_domain_alloc(uint16_t *domain_id) int rte_eth_switch_domain_free(uint16_t domain_id) { + rte_eth_trace_switch_domain_free(domain_id); if (domain_id == RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID || domain_id >= RTE_MAX_ETHPORTS) return -EINVAL; diff --git a/lib/ethdev/ethdev_trace_points.c b/lib/ethdev/ethdev_trace_points.c index 341901d031..61539f379c 100644 --- a/lib/ethdev/ethdev_trace_points.c +++ b/lib/ethdev/ethdev_trace_points.c @@ -731,3 +731,69 @@ RTE_TRACE_POINT_REGISTER(rte_tm_trace_wred_profile_add, RTE_TRACE_POINT_REGISTER(rte_tm_trace_wred_profile_delete, lib.ethdev.tm.wred_profile_delete) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_allocate, + lib.ethdev.allocate) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_allocated, + lib.ethdev.allocated) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_attach_secondary, + lib.ethdev.attach_secondary) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_callback_process, + lib.ethdev.callback_process) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_create, + lib.ethdev_create) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_destroy, + lib.ethdev.destroy) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_get_by_name, + lib.ethdev.get_by_name) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_is_rx_hairpin_queue, + lib.ethdev.is_rx_hairpin_queue) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_is_tx_hairpin_queue, + lib.ethdev.is_tx_hairpin_queue) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_probing_finish, + lib.ethdev.probing_finish) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_release_port, + lib.ethdev.release_port) + +RTE_TRACE_POINT_REGISTER(rte_ethdev_trace_internal_reset, + lib.ethdev.internal_reset) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_devargs_parse, + lib.ethdev.devargs_parse) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_dma_zone_free, + lib.ethdev.dma_zone_free) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_dma_zone_reserve, + lib.ethdev.dma_zone_reserve) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_hairpin_queue_peer_bind, + lib.ethdev.hairpin_queue_peer_bind) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_hairpin_queue_peer_unbind, + lib.ethdev.hairpin_queue_peer_unbind) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_hairpin_queue_peer_update, + lib.ethdev.hairpin_queue_peer_update) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_ip_reassembly_dynfield_register, + lib.ethdev.ip_reassembly_dynfield_register) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_representor_id_get, + lib.ethdev.representor_id_get) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_switch_domain_alloc, + lib.ethdev.switch_domain_alloc) + +RTE_TRACE_POINT_REGISTER(rte_eth_trace_switch_domain_free, + lib.ethdev.switch_domain_free) diff --git a/lib/ethdev/rte_ethdev_trace.h b/lib/ethdev/rte_ethdev_trace.h index aa34a6a5e9..a3c0b6fa76 100644 --- a/lib/ethdev/rte_ethdev_trace.h +++ b/lib/ethdev/rte_ethdev_trace.h @@ -17,6 +17,7 @@ extern "C" { #include +#include "ethdev_driver.h" #include "rte_ethdev.h" #include "rte_mtr.h" #include "rte_tm.h" @@ -2134,6 +2135,205 @@ RTE_TRACE_POINT( rte_trace_point_emit_u32(wred_profile_id); ) +RTE_TRACE_POINT( + rte_ethdev_trace_allocate, + RTE_TRACE_POINT_ARGS(const char *name, struct rte_eth_dev *eth_dev), + rte_trace_point_emit_string(name); + rte_trace_point_emit_u16(eth_dev->data->nb_rx_queues); + rte_trace_point_emit_u16(eth_dev->data->nb_tx_queues); + rte_trace_point_emit_u16(eth_dev->data->mtu); + rte_trace_point_emit_u16(eth_dev->data->port_id); + rte_trace_point_emit_int(eth_dev->state); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_allocated, + RTE_TRACE_POINT_ARGS(const char *name), + rte_trace_point_emit_string(name); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_attach_secondary, + RTE_TRACE_POINT_ARGS(const char *name, struct rte_eth_dev *eth_dev), + rte_trace_point_emit_string(name); + rte_trace_point_emit_u16(eth_dev->data->nb_rx_queues); + rte_trace_point_emit_u16(eth_dev->data->nb_tx_queues); + rte_trace_point_emit_u16(eth_dev->data->mtu); + rte_trace_point_emit_u16(eth_dev->data->port_id); + rte_trace_point_emit_int(eth_dev->state); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_callback_process, + RTE_TRACE_POINT_ARGS(struct rte_eth_dev *dev, + enum rte_eth_event_type event, + void *ret_param), + rte_trace_point_emit_ptr(dev); + rte_trace_point_emit_int(event); + rte_trace_point_emit_ptr(ret_param); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_create, + RTE_TRACE_POINT_ARGS(struct rte_device *device, const char *name, + size_t priv_data_size, + ethdev_bus_specific_init bus_specific_init, + void *bus_init_params, ethdev_init_t ethdev_init, + void *init_params), + rte_trace_point_emit_ptr(device); + rte_trace_point_emit_string(name); + rte_trace_point_emit_size_t(priv_data_size); + rte_trace_point_emit_ptr(bus_specific_init); + rte_trace_point_emit_ptr(bus_init_params); + rte_trace_point_emit_ptr(ethdev_init); + rte_trace_point_emit_ptr(init_params); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_destroy, + RTE_TRACE_POINT_ARGS(struct rte_eth_dev *ethdev, ethdev_uninit_t ethdev_uninit), + rte_trace_point_emit_ptr(ethdev); + rte_trace_point_emit_ptr(ethdev_uninit); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_get_by_name, + RTE_TRACE_POINT_ARGS(const char *name), + rte_trace_point_emit_string(name); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_is_rx_hairpin_queue, + RTE_TRACE_POINT_ARGS(struct rte_eth_dev *dev, uint16_t queue_id), + rte_trace_point_emit_ptr(dev); + rte_trace_point_emit_u16(queue_id); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_is_tx_hairpin_queue, + RTE_TRACE_POINT_ARGS(struct rte_eth_dev *dev, uint16_t queue_id), + rte_trace_point_emit_ptr(dev); + rte_trace_point_emit_u16(queue_id); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_probing_finish, + RTE_TRACE_POINT_ARGS(struct rte_eth_dev *dev), + rte_trace_point_emit_ptr(dev); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_release_port, + RTE_TRACE_POINT_ARGS(struct rte_eth_dev *eth_dev), + rte_trace_point_emit_ptr(eth_dev); +) + +RTE_TRACE_POINT( + rte_ethdev_trace_internal_reset, + RTE_TRACE_POINT_ARGS(struct rte_eth_dev *dev, + uint8_t dev_started), + rte_trace_point_emit_ptr(dev); + rte_trace_point_emit_u8(dev_started); +) + +RTE_TRACE_POINT( + rte_eth_trace_devargs_parse, + RTE_TRACE_POINT_ARGS(const char *devargs, struct rte_eth_devargs *eth_devargs), + rte_trace_point_emit_string(devargs); + rte_trace_point_emit_ptr(eth_devargs); + rte_trace_point_emit_u16(eth_devargs->nb_mh_controllers); + rte_trace_point_emit_u16(eth_devargs->nb_ports); + rte_trace_point_emit_u16(eth_devargs->nb_representor_ports); +) + +RTE_TRACE_POINT( + rte_eth_trace_dma_zone_free, + RTE_TRACE_POINT_ARGS(const struct rte_eth_dev *eth_dev, const char *name, + uint16_t queue_id), + rte_trace_point_emit_ptr(eth_dev); + rte_trace_point_emit_string(name); + rte_trace_point_emit_u16(queue_id); +) + +RTE_TRACE_POINT( + rte_eth_trace_dma_zone_reserve, + RTE_TRACE_POINT_ARGS(const struct rte_eth_dev *eth_dev, const char *name, + uint16_t queue_id, size_t size, unsigned int align, + int socket_id), + rte_trace_point_emit_ptr(eth_dev); + rte_trace_point_emit_string(name); + rte_trace_point_emit_u16(queue_id); + rte_trace_point_emit_size_t(size); + rte_trace_point_emit_u32(align); + rte_trace_point_emit_int(socket_id); +) + +RTE_TRACE_POINT( + rte_eth_trace_hairpin_queue_peer_bind, + RTE_TRACE_POINT_ARGS(uint16_t cur_port, uint16_t cur_queue, + struct rte_hairpin_peer_info *peer_info, + uint32_t direction), + rte_trace_point_emit_u16(cur_port); + rte_trace_point_emit_u16(cur_queue); + rte_trace_point_emit_ptr(peer_info); + rte_trace_point_emit_u32(direction); +) + +RTE_TRACE_POINT( + rte_eth_trace_hairpin_queue_peer_unbind, + RTE_TRACE_POINT_ARGS(uint16_t cur_port, uint16_t cur_queue, + uint32_t direction), + rte_trace_point_emit_u16(cur_port); + rte_trace_point_emit_u16(cur_queue); + rte_trace_point_emit_u32(direction); +) + +RTE_TRACE_POINT( + rte_eth_trace_hairpin_queue_peer_update, + RTE_TRACE_POINT_ARGS(uint16_t peer_port, uint16_t peer_queue, + struct rte_hairpin_peer_info *cur_info, + struct rte_hairpin_peer_info *peer_info, + uint32_t direction), + rte_trace_point_emit_u16(peer_port); + rte_trace_point_emit_u16(peer_queue); + rte_trace_point_emit_ptr(cur_info); + rte_trace_point_emit_ptr(peer_info); + rte_trace_point_emit_u32(direction); +) + +RTE_TRACE_POINT( + rte_eth_trace_ip_reassembly_dynfield_register, + RTE_TRACE_POINT_ARGS(int field_offset, int flag_offset), + rte_trace_point_emit_int(field_offset); + rte_trace_point_emit_int(flag_offset); +) + +RTE_TRACE_POINT( + rte_eth_trace_representor_id_get, + RTE_TRACE_POINT_ARGS(uint16_t port_id, + enum rte_eth_representor_type type, + int controller, int pf, int representor_port, + uint16_t repr_id), + rte_trace_point_emit_u16(port_id); + rte_trace_point_emit_int(type); + rte_trace_point_emit_int(controller); + rte_trace_point_emit_int(pf); + rte_trace_point_emit_int(representor_port); + rte_trace_point_emit_u16(repr_id); +) + +RTE_TRACE_POINT( + rte_eth_trace_switch_domain_alloc, + RTE_TRACE_POINT_ARGS(uint16_t domain_id), + rte_trace_point_emit_u16(domain_id); +) + +RTE_TRACE_POINT( + rte_eth_trace_switch_domain_free, + RTE_TRACE_POINT_ARGS(uint16_t domain_id), + rte_trace_point_emit_u16(domain_id); +) + #ifdef __cplusplus } #endif diff --git a/lib/ethdev/version.map b/lib/ethdev/version.map index ee4012789f..ee3ff4793d 100644 --- a/lib/ethdev/version.map +++ b/lib/ethdev/version.map @@ -520,6 +520,28 @@ EXPERIMENTAL { __rte_tm_trace_shared_wred_context_delete; __rte_tm_trace_wred_profile_add; __rte_tm_trace_wred_profile_delete; + __rte_ethdev_trace_allocate; + __rte_ethdev_trace_allocated; + __rte_ethdev_trace_attach_secondary; + __rte_ethdev_trace_callback_process; + __rte_ethdev_trace_create; + __rte_ethdev_trace_destroy; + __rte_ethdev_trace_get_by_name; + __rte_ethdev_trace_is_rx_hairpin_queue; + __rte_ethdev_trace_is_tx_hairpin_queue; + __rte_ethdev_trace_probing_finish; + __rte_ethdev_trace_release_port; + __rte_ethdev_trace_internal_reset; + __rte_eth_trace_devargs_parse; + __rte_eth_trace_dma_zone_free; + __rte_eth_trace_dma_zone_reserve; + __rte_eth_trace_hairpin_queue_peer_bind; + __rte_eth_trace_hairpin_queue_peer_unbind; + __rte_eth_trace_hairpin_queue_peer_update; + __rte_eth_trace_ip_reassembly_dynfield_register; + __rte_eth_trace_representor_id_get; + __rte_eth_trace_switch_domain_alloc; + __rte_eth_trace_switch_domain_free; }; INTERNAL { -- 2.28.0