Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/69149/?format=api
https://patches.dpdk.org/api/patches/69149/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200422190349.3768487-30-jerinj@marvell.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20200422190349.3768487-30-jerinj@marvell.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20200422190349.3768487-30-jerinj@marvell.com", "date": "2020-04-22T19:03:46", "name": "[v7,29/32] eventdev: add tracepoints", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "18dc0944c6ccbdbe174e7c4cfeedd886d8fb1de8", "submitter": { "id": 1188, "url": "https://patches.dpdk.org/api/people/1188/?format=api", "name": "Jerin Jacob Kollanukkaran", "email": "jerinj@marvell.com" }, "delegate": { "id": 24651, "url": "https://patches.dpdk.org/api/users/24651/?format=api", "username": "dmarchand", "first_name": "David", "last_name": "Marchand", "email": "david.marchand@redhat.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200422190349.3768487-30-jerinj@marvell.com/mbox/", "series": [ { "id": 9574, "url": "https://patches.dpdk.org/api/series/9574/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=9574", "date": "2020-04-22T19:03:17", "name": "DPDK Trace support", "version": 7, "mbox": "https://patches.dpdk.org/series/9574/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/69149/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/69149/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 156E2A00C2;\n\tWed, 22 Apr 2020 21:09:12 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5F4601D5AB;\n\tWed, 22 Apr 2020 21:05:59 +0200 (CEST)", "from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com\n [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 94BD81D6C8\n for <dev@dpdk.org>; Wed, 22 Apr 2020 21:05:52 +0200 (CEST)", "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id\n 03MJ5Z4Z020019; Wed, 22 Apr 2020 12:05:51 -0700", "from sc-exch02.marvell.com ([199.233.58.182])\n by mx0a-0016f401.pphosted.com with ESMTP id 30fxwpk04y-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Wed, 22 Apr 2020 12:05:51 -0700", "from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH02.marvell.com\n (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Wed, 22 Apr 2020 12:05:49 -0700", "from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.2 via Frontend\n Transport; Wed, 22 Apr 2020 12:05:49 -0700", "from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14])\n by maili.marvell.com (Postfix) with ESMTP id B79DC3F703F;\n Wed, 22 Apr 2020 12:05:46 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-transfer-encoding : content-type; s=pfpt0818;\n bh=fmLJJs/4jNA1EAk07HL6HxIp8/v3xw6wlZ5P2nfG8X8=;\n b=Jhw5chNBGUWIhz9+SJJL9ToBK+5fkPfd10keZcTvIXisTJZHIa4BWQ9giKUt2/F1UhJs\n l8+1k0lFWwAKZXcjggJg+bteX5fNZ3oWD73dAslTXRlKTedMpBOhjrI+6R2SNagb+HYb\n UQwUMFsRjAeqP1sQ2+R+ooM8/djhbIElJWSaHSiuh7C+lH8Ad7Y7793Sm0iGycipEK6q\n ViEkB3TUFPuJLkDNPMYX/ZvdvQMiTVNRVZ3Ca6RSJMpfp/SqjWuQ6Ojatf+viemiWxHS\n FtKQHV+KfWM1wd7kvewORhIRYnhONP94IiwZTsl4+LeFiV8jSB0cgsF3mLhOq09Y/XBC 4A==", "From": "<jerinj@marvell.com>", "To": "Jerin Jacob <jerinj@marvell.com>, Abhinandan Gujjar\n <abhinandan.gujjar@intel.com>, Nikhil Rao <nikhil.rao@intel.com>, \"Erik\n Gabriel Carrillo\" <erik.g.carrillo@intel.com>", "CC": "<dev@dpdk.org>, <thomas@monjalon.net>, <bruce.richardson@intel.com>,\n <david.marchand@redhat.com>, <mattias.ronnblom@ericsson.com>,\n <skori@marvell.com>", "Date": "Thu, 23 Apr 2020 00:33:46 +0530", "Message-ID": "<20200422190349.3768487-30-jerinj@marvell.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20200422190349.3768487-1-jerinj@marvell.com>", "References": "<20200419100133.3232316-1-jerinj@marvell.com>\n <20200422190349.3768487-1-jerinj@marvell.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676\n definitions=2020-04-22_06:2020-04-22,\n 2020-04-22 signatures=0", "Subject": "[dpdk-dev] [PATCH v7 29/32] eventdev: add tracepoints", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "From: Sunil Kumar Kori <skori@marvell.com>\n\nAdd tracepoints at important and mandatory APIs for tracing support.\n\nSigned-off-by: Sunil Kumar Kori <skori@marvell.com>\n---\n lib/librte_eventdev/Makefile | 3 +\n lib/librte_eventdev/eventdev_trace_points.c | 173 ++++++++++\n lib/librte_eventdev/meson.build | 3 +\n .../rte_event_crypto_adapter.c | 10 +\n .../rte_event_eth_rx_adapter.c | 11 +\n .../rte_event_eth_tx_adapter.c | 13 +-\n .../rte_event_eth_tx_adapter.h | 2 +\n lib/librte_eventdev/rte_event_timer_adapter.c | 8 +-\n lib/librte_eventdev/rte_event_timer_adapter.h | 8 +\n lib/librte_eventdev/rte_eventdev.c | 9 +\n lib/librte_eventdev/rte_eventdev.h | 5 +-\n lib/librte_eventdev/rte_eventdev_trace.h | 311 ++++++++++++++++++\n lib/librte_eventdev/rte_eventdev_trace_fp.h | 85 +++++\n lib/librte_eventdev/rte_eventdev_version.map | 42 +++\n 14 files changed, 679 insertions(+), 4 deletions(-)\n create mode 100644 lib/librte_eventdev/eventdev_trace_points.c\n create mode 100644 lib/librte_eventdev/rte_eventdev_trace.h\n create mode 100644 lib/librte_eventdev/rte_eventdev_trace_fp.h", "diff": "diff --git a/lib/librte_eventdev/Makefile b/lib/librte_eventdev/Makefile\nindex c85c0d3cf..0aed37fdc 100644\n--- a/lib/librte_eventdev/Makefile\n+++ b/lib/librte_eventdev/Makefile\n@@ -21,6 +21,7 @@ LDLIBS += -lrte_mbuf -lrte_cryptodev -lpthread\n # library source files\n SRCS-y += rte_eventdev.c\n SRCS-y += rte_event_ring.c\n+SRCS-y += eventdev_trace_points.c\n SRCS-y += rte_event_eth_rx_adapter.c\n SRCS-y += rte_event_timer_adapter.c\n SRCS-y += rte_event_crypto_adapter.c\n@@ -29,6 +30,8 @@ SRCS-y += rte_event_eth_tx_adapter.c\n # export include files\n SYMLINK-y-include += rte_eventdev.h\n SYMLINK-y-include += rte_eventdev_pmd.h\n+SYMLINK-y-include += rte_eventdev_trace.h\n+SYMLINK-y-include += rte_eventdev_trace_fp.h\n SYMLINK-y-include += rte_eventdev_pmd_pci.h\n SYMLINK-y-include += rte_eventdev_pmd_vdev.h\n SYMLINK-y-include += rte_event_ring.h\ndiff --git a/lib/librte_eventdev/eventdev_trace_points.c b/lib/librte_eventdev/eventdev_trace_points.c\nnew file mode 100644\nindex 000000000..9407180c6\n--- /dev/null\n+++ b/lib/librte_eventdev/eventdev_trace_points.c\n@@ -0,0 +1,173 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(C) 2020 Marvell International Ltd.\n+ */\n+\n+#define RTE_TRACE_POINT_REGISTER_SELECT /* Select trace point register macros */\n+\n+#include \"rte_eventdev_trace.h\"\n+\n+/* Eventdev trace points */\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_configure);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_queue_setup);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_port_setup);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_port_link);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_port_unlink);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_start);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_stop);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_close);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_enq_burst);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_deq_burst);\n+\n+/* Eventdev Rx adapter trace points */\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_create);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_free);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_queue_add);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_queue_del);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_start);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_rx_adapter_stop);\n+\n+/* Eventdev Tx adapter trace points */\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_create);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_free);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_queue_add);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_queue_del);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_start);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_stop);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_eth_tx_adapter_enqueue);\n+\n+/* Eventdev Timer adapter trace points */\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_create);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_start);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_stop);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_adapter_free);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_arm_burst);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_arm_tmo_tick_burst);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_timer_cancel_burst);\n+\n+/* Eventdev Crypto adapter trace points */\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_create);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_free);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_queue_pair_add);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_queue_pair_del);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_start);\n+RTE_TRACE_POINT_DEFINE(rte_eventdev_trace_crypto_adapter_stop);\n+\n+RTE_INIT(eventdev_trace_init)\n+{\n+\t/* Eventdev trace points */\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_configure,\n+\t\t\t\t lib.eventdev.configure);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_queue_setup,\n+\t\t\t\t lib.eventdev.queue.setup);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_port_setup,\n+\t\t\t\t lib.eventdev.port.setup);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_port_link,\n+\t\t\t\t lib.eventdev.port.link);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_port_unlink,\n+\t\t\t\t lib.eventdev.port.unlink);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_start,\n+\t\t\t\t lib.eventdev.start);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_stop,\n+\t\t\t\t lib.eventdev.stop);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_close,\n+\t\t\t\t lib.eventdev.close);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_enq_burst,\n+\t\t\t\t lib.eventdev.enq.burst);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_deq_burst,\n+\t\t\t\t lib.eventdev.deq.burst);\n+\n+\n+\t/* Eventdev Rx adapter trace points */\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_create,\n+\t\t\t\t lib.eventdev.rx.adapter.create);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_free,\n+\t\t\t\t lib.eventdev.rx.adapter.free);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_queue_add,\n+\t\t\t\t lib.eventdev.rx.adapter.queue.add);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_queue_del,\n+\t\t\t\t lib.eventdev.rx.adapter.queue.del);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_start,\n+\t\t\t\t lib.eventdev.rx.adapter.start);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_rx_adapter_stop,\n+\t\t\t\t lib.eventdev.rx.adapter.stop);\n+\n+\t/* Eventdev Tx adapter trace points */\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_create,\n+\t\t\t\t lib.eventdev.tx.adapter.create);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_free,\n+\t\t\t\t lib.eventdev.tx.adapter.free);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_queue_add,\n+\t\t\t\t lib.eventdev.tx.adapter.queue.add);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_queue_del,\n+\t\t\t\t lib.eventdev.tx.adapter.queue.del);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_start,\n+\t\t\t\t lib.eventdev.tx.adapter.start);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_stop,\n+\t\t\t\t lib.eventdev.tx.adapter.stop);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_eth_tx_adapter_enqueue,\n+\t\t\t\t lib.eventdev.tx.adapter.enq);\n+\n+\n+\t/* Eventdev Timer adapter trace points */\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_create,\n+\t\t\t\t lib.eventdev.timer.create);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_start,\n+\t\t\t\t lib.eventdev.timer.start);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_stop,\n+\t\t\t\t lib.eventdev.timer.stop);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_adapter_free,\n+\t\t\t\t lib.eventdev.timer.free);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_arm_burst,\n+\t\t\t\t lib.eventdev.timer.burst);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_arm_tmo_tick_burst,\n+\t\t\t\t lib.eventdev.timer.tick.burst);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_timer_cancel_burst,\n+\t\t\t\t lib.eventdev.timer.cancel);\n+\n+\t/* Eventdev Crypto adapter trace points */\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_create,\n+\t\t\t\t lib.eventdev.crypto.create);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_free,\n+\t\t\t\t lib.eventdev.crypto.free);\n+\n+\tRTE_TRACE_POINT_REGISTER(\n+\t\t\trte_eventdev_trace_crypto_adapter_queue_pair_add,\n+\t\t\tlib.eventdev.crypto.queue.add);\n+\n+\tRTE_TRACE_POINT_REGISTER(\n+\t\t\trte_eventdev_trace_crypto_adapter_queue_pair_del,\n+\t\t\tlib.eventdev.crypto.queue.del);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_start,\n+\t\t\t\t lib.eventdev.crypto.start);\n+\n+\tRTE_TRACE_POINT_REGISTER(rte_eventdev_trace_crypto_adapter_stop,\n+\t\t\t\t lib.eventdev.crypto.stop);\n+}\ndiff --git a/lib/librte_eventdev/meson.build b/lib/librte_eventdev/meson.build\nindex 16d8240e9..07e0464d9 100644\n--- a/lib/librte_eventdev/meson.build\n+++ b/lib/librte_eventdev/meson.build\n@@ -9,12 +9,15 @@ endif\n \n sources = files('rte_eventdev.c',\n \t\t'rte_event_ring.c',\n+\t\t'eventdev_trace_points.c',\n \t\t'rte_event_eth_rx_adapter.c',\n \t\t'rte_event_timer_adapter.c',\n \t\t'rte_event_crypto_adapter.c',\n \t\t'rte_event_eth_tx_adapter.c')\n headers = files('rte_eventdev.h',\n \t\t'rte_eventdev_pmd.h',\n+\t\t'rte_eventdev_trace.h',\n+\t\t'rte_eventdev_trace_fp.h',\n \t\t'rte_eventdev_pmd_pci.h',\n \t\t'rte_eventdev_pmd_vdev.h',\n \t\t'rte_event_ring.h',\ndiff --git a/lib/librte_eventdev/rte_event_crypto_adapter.c b/lib/librte_eventdev/rte_event_crypto_adapter.c\nindex 22d910816..e7b7f0c63 100644\n--- a/lib/librte_eventdev/rte_event_crypto_adapter.c\n+++ b/lib/librte_eventdev/rte_event_crypto_adapter.c\n@@ -16,6 +16,7 @@\n \n #include \"rte_eventdev.h\"\n #include \"rte_eventdev_pmd.h\"\n+#include \"rte_eventdev_trace.h\"\n #include \"rte_event_crypto_adapter.h\"\n \n #define BATCH_SIZE 32\n@@ -267,6 +268,8 @@ rte_event_crypto_adapter_create_ext(uint8_t id, uint8_t dev_id,\n \n \tevent_crypto_adapter[id] = adapter;\n \n+\trte_eventdev_trace_crypto_adapter_create(id, dev_id, adapter, conf_arg,\n+\t\t\t\t\t\t mode);\n \treturn 0;\n }\n \n@@ -314,6 +317,7 @@ rte_event_crypto_adapter_free(uint8_t id)\n \t\treturn -EBUSY;\n \t}\n \n+\trte_eventdev_trace_crypto_adapter_free(id, adapter);\n \tif (adapter->default_cb_arg)\n \t\trte_free(adapter->conf_arg);\n \trte_free(adapter->cdevs);\n@@ -874,6 +878,8 @@ rte_event_crypto_adapter_queue_pair_add(uint8_t id,\n \t\trte_service_component_runstate_set(adapter->service_id, 1);\n \t}\n \n+\trte_eventdev_trace_crypto_adapter_queue_pair_add(id, cdev_id, event,\n+\t\t\t\t\t\t\t queue_pair_id);\n \treturn 0;\n }\n \n@@ -959,6 +965,8 @@ rte_event_crypto_adapter_queue_pair_del(uint8_t id, uint8_t cdev_id,\n \t\t\t\tadapter->nb_qps);\n \t}\n \n+\trte_eventdev_trace_crypto_adapter_queue_pair_del(id, cdev_id,\n+\t\t\t\t\t\t\t queue_pair_id, ret);\n \treturn ret;\n }\n \n@@ -1014,12 +1022,14 @@ rte_event_crypto_adapter_start(uint8_t id)\n \tif (adapter == NULL)\n \t\treturn -EINVAL;\n \n+\trte_eventdev_trace_crypto_adapter_start(id, adapter);\n \treturn eca_adapter_ctrl(id, 1);\n }\n \n int\n rte_event_crypto_adapter_stop(uint8_t id)\n {\n+\trte_eventdev_trace_crypto_adapter_stop(id);\n \treturn eca_adapter_ctrl(id, 0);\n }\n \ndiff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c\nindex 95dd47820..7137a4e22 100644\n--- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c\n+++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c\n@@ -20,6 +20,7 @@\n \n #include \"rte_eventdev.h\"\n #include \"rte_eventdev_pmd.h\"\n+#include \"rte_eventdev_trace.h\"\n #include \"rte_event_eth_rx_adapter.h\"\n \n #define BATCH_SIZE\t\t32\n@@ -1998,6 +1999,8 @@ rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,\n \tevent_eth_rx_adapter[id] = rx_adapter;\n \tif (conf_cb == rxa_default_conf_cb)\n \t\trx_adapter->default_cb_arg = 1;\n+\trte_eventdev_trace_eth_rx_adapter_create(id, dev_id, conf_cb,\n+\t\t\t\t\t\t conf_arg);\n \treturn 0;\n }\n \n@@ -2047,6 +2050,7 @@ rte_event_eth_rx_adapter_free(uint8_t id)\n \trte_free(rx_adapter);\n \tevent_eth_rx_adapter[id] = NULL;\n \n+\trte_eventdev_trace_eth_rx_adapter_free(id);\n \treturn 0;\n }\n \n@@ -2142,6 +2146,9 @@ rte_event_eth_rx_adapter_queue_add(uint8_t id,\n \t\trte_spinlock_unlock(&rx_adapter->rx_lock);\n \t}\n \n+\trte_eventdev_trace_eth_rx_adapter_queue_add(id, eth_dev_id,\n+\t\t\t\t\t\t rx_queue_id, queue_conf,\n+\t\t\t\t\t\t ret);\n \tif (ret)\n \t\treturn ret;\n \n@@ -2263,18 +2270,22 @@ rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,\n \t\t\t\trxa_sw_adapter_queue_count(rx_adapter));\n \t}\n \n+\trte_eventdev_trace_eth_rx_adapter_queue_del(id, eth_dev_id,\n+\t\t\t\t\t\t rx_queue_id, ret);\n \treturn ret;\n }\n \n int\n rte_event_eth_rx_adapter_start(uint8_t id)\n {\n+\trte_eventdev_trace_eth_rx_adapter_start(id);\n \treturn rxa_ctrl(id, 1);\n }\n \n int\n rte_event_eth_rx_adapter_stop(uint8_t id)\n {\n+\trte_eventdev_trace_eth_rx_adapter_stop(id);\n \treturn rxa_ctrl(id, 0);\n }\n \ndiff --git a/lib/librte_eventdev/rte_event_eth_tx_adapter.c b/lib/librte_eventdev/rte_event_eth_tx_adapter.c\nindex d02ef57f4..d964c99f6 100644\n--- a/lib/librte_eventdev/rte_event_eth_tx_adapter.c\n+++ b/lib/librte_eventdev/rte_event_eth_tx_adapter.c\n@@ -6,6 +6,7 @@\n #include <rte_ethdev.h>\n \n #include \"rte_eventdev_pmd.h\"\n+#include \"rte_eventdev_trace.h\"\n #include \"rte_event_eth_tx_adapter.h\"\n \n #define TXA_BATCH_SIZE\t\t32\n@@ -942,7 +943,8 @@ rte_event_eth_tx_adapter_create(uint8_t id, uint8_t dev_id,\n \t\ttxa_dev_id_array[id] = TXA_INVALID_DEV_ID;\n \t\treturn ret;\n \t}\n-\n+\trte_eventdev_trace_eth_tx_adapter_create(id, dev_id, NULL, port_conf,\n+\t\t\t\t\t\t ret);\n \ttxa_dev_id_array[id] = dev_id;\n \treturn 0;\n }\n@@ -984,6 +986,8 @@ rte_event_eth_tx_adapter_create_ext(uint8_t id, uint8_t dev_id,\n \t\treturn ret;\n \t}\n \n+\trte_eventdev_trace_eth_tx_adapter_create(id, dev_id, conf_cb, conf_arg,\n+\t\t\t\t\t\t ret);\n \ttxa_dev_id_array[id] = dev_id;\n \treturn 0;\n }\n@@ -1012,6 +1016,7 @@ rte_event_eth_tx_adapter_free(uint8_t id)\n \t\tret = txa_service_adapter_free(id);\n \ttxa_dev_id_array[id] = TXA_INVALID_DEV_ID;\n \n+\trte_eventdev_trace_eth_tx_adapter_free(id, ret);\n \treturn ret;\n }\n \n@@ -1043,6 +1048,8 @@ rte_event_eth_tx_adapter_queue_add(uint8_t id,\n \telse\n \t\tret = txa_service_queue_add(id, txa_evdev(id), eth_dev, queue);\n \n+\trte_eventdev_trace_eth_tx_adapter_queue_add(id, eth_dev_id, queue,\n+\t\t\t\t\t\t ret);\n \treturn ret;\n }\n \n@@ -1073,6 +1080,8 @@ rte_event_eth_tx_adapter_queue_del(uint8_t id,\n \telse\n \t\tret = txa_service_queue_del(id, eth_dev, queue);\n \n+\trte_eventdev_trace_eth_tx_adapter_queue_del(id, eth_dev_id, queue,\n+\t\t\t\t\t\t ret);\n \treturn ret;\n }\n \n@@ -1094,6 +1103,7 @@ rte_event_eth_tx_adapter_start(uint8_t id)\n \tret = txa_dev_start(id) ? txa_dev_start(id)(id, txa_evdev(id)) : 0;\n \tif (ret == 0)\n \t\tret = txa_service_start(id);\n+\trte_eventdev_trace_eth_tx_adapter_start(id, ret);\n \treturn ret;\n }\n \n@@ -1154,5 +1164,6 @@ rte_event_eth_tx_adapter_stop(uint8_t id)\n \tret = txa_dev_stop(id) ? txa_dev_stop(id)(id, txa_evdev(id)) : 0;\n \tif (ret == 0)\n \t\tret = txa_service_stop(id);\n+\trte_eventdev_trace_eth_tx_adapter_stop(id, ret);\n \treturn ret;\n }\ndiff --git a/lib/librte_eventdev/rte_event_eth_tx_adapter.h b/lib/librte_eventdev/rte_event_eth_tx_adapter.h\nindex 93b717af9..3bfd89be8 100644\n--- a/lib/librte_eventdev/rte_event_eth_tx_adapter.h\n+++ b/lib/librte_eventdev/rte_event_eth_tx_adapter.h\n@@ -369,6 +369,8 @@ rte_event_eth_tx_adapter_enqueue(uint8_t dev_id,\n \t\treturn 0;\n \t}\n #endif\n+\trte_eventdev_trace_eth_tx_adapter_enqueue(dev_id, port_id, ev,\n+\t\t\t\t\t\t nb_events, flags);\n \tif (flags)\n \t\treturn dev->txa_enqueue_same_dest(dev->data->ports[port_id],\n \t\t\t\t\t\t ev, nb_events);\ndiff --git a/lib/librte_eventdev/rte_event_timer_adapter.c b/lib/librte_eventdev/rte_event_timer_adapter.c\nindex 161e21a68..0e24945c5 100644\n--- a/lib/librte_eventdev/rte_event_timer_adapter.c\n+++ b/lib/librte_eventdev/rte_event_timer_adapter.c\n@@ -22,6 +22,7 @@\n \n #include \"rte_eventdev.h\"\n #include \"rte_eventdev_pmd.h\"\n+#include \"rte_eventdev_trace.h\"\n #include \"rte_event_timer_adapter.h\"\n #include \"rte_event_timer_adapter_pmd.h\"\n \n@@ -228,6 +229,8 @@ rte_event_timer_adapter_create_ext(\n \n \tadapter->allocated = 1;\n \n+\trte_eventdev_trace_timer_adapter_create(adapter_id, adapter, conf,\n+\t\t\t\t\t\t conf_cb);\n \treturn adapter;\n \n free_memzone:\n@@ -272,7 +275,7 @@ rte_event_timer_adapter_start(const struct rte_event_timer_adapter *adapter)\n \t\treturn ret;\n \n \tadapter->data->started = 1;\n-\n+\trte_eventdev_trace_timer_adapter_start(adapter);\n \treturn 0;\n }\n \n@@ -295,7 +298,7 @@ rte_event_timer_adapter_stop(const struct rte_event_timer_adapter *adapter)\n \t\treturn ret;\n \n \tadapter->data->started = 0;\n-\n+\trte_eventdev_trace_timer_adapter_stop(adapter);\n \treturn 0;\n }\n \n@@ -379,6 +382,7 @@ rte_event_timer_adapter_free(struct rte_event_timer_adapter *adapter)\n \tadapter->data = NULL;\n \tadapter->allocated = 0;\n \n+\trte_eventdev_trace_timer_adapter_free(adapter);\n \treturn 0;\n }\n \ndiff --git a/lib/librte_eventdev/rte_event_timer_adapter.h b/lib/librte_eventdev/rte_event_timer_adapter.h\nindex 7f6dc5c29..ac0400cb4 100644\n--- a/lib/librte_eventdev/rte_event_timer_adapter.h\n+++ b/lib/librte_eventdev/rte_event_timer_adapter.h\n@@ -115,6 +115,7 @@ extern \"C\" {\n #include <rte_memory.h>\n \n #include \"rte_eventdev.h\"\n+#include \"rte_eventdev_trace_fp.h\"\n \n /**\n * Timer adapter clock source\n@@ -579,6 +580,8 @@ rte_event_timer_arm_burst(const struct rte_event_timer_adapter *adapter,\n \tADAPTER_VALID_OR_ERR_RET(adapter, -EINVAL);\n \tFUNC_PTR_OR_ERR_RET(adapter->arm_burst, -EINVAL);\n #endif\n+\trte_eventdev_trace_timer_arm_burst(adapter, (void **)evtims,\n+\t\t\t\t\t nb_evtims);\n \treturn adapter->arm_burst(adapter, evtims, nb_evtims);\n }\n \n@@ -622,6 +625,9 @@ rte_event_timer_arm_tmo_tick_burst(\n \tADAPTER_VALID_OR_ERR_RET(adapter, -EINVAL);\n \tFUNC_PTR_OR_ERR_RET(adapter->arm_tmo_tick_burst, -EINVAL);\n #endif\n+\trte_eventdev_trace_timer_arm_tmo_tick_burst(adapter, timeout_ticks,\n+\t\t\t\t\t\t (void **)evtims,\n+\t\t\t\t\t\t nb_evtims);\n \treturn adapter->arm_tmo_tick_burst(adapter, evtims, timeout_ticks,\n \t\t\t\t\t nb_evtims);\n }\n@@ -655,6 +661,8 @@ rte_event_timer_cancel_burst(const struct rte_event_timer_adapter *adapter,\n \tADAPTER_VALID_OR_ERR_RET(adapter, -EINVAL);\n \tFUNC_PTR_OR_ERR_RET(adapter->cancel_burst, -EINVAL);\n #endif\n+\trte_eventdev_trace_timer_cancel_burst(adapter, (void **)evtims,\n+\t\t\t\t\t nb_evtims);\n \treturn adapter->cancel_burst(adapter, evtims, nb_evtims);\n }\n \ndiff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c\nindex b987e0745..e72d8b941 100644\n--- a/lib/librte_eventdev/rte_eventdev.c\n+++ b/lib/librte_eventdev/rte_eventdev.c\n@@ -35,6 +35,7 @@\n \n #include \"rte_eventdev.h\"\n #include \"rte_eventdev_pmd.h\"\n+#include \"rte_eventdev_trace.h\"\n \n static struct rte_eventdev rte_event_devices[RTE_EVENT_MAX_DEVS];\n \n@@ -524,6 +525,7 @@ rte_event_dev_configure(uint8_t dev_id,\n \t}\n \n \tdev->data->event_dev_cap = info.event_dev_cap;\n+\trte_eventdev_trace_configure(dev_id, dev_conf, diag);\n \treturn diag;\n }\n \n@@ -650,6 +652,7 @@ rte_event_queue_setup(uint8_t dev_id, uint8_t queue_id,\n \t}\n \n \tdev->data->queues_cfg[queue_id] = *queue_conf;\n+\trte_eventdev_trace_queue_setup(dev_id, queue_id, queue_conf);\n \treturn (*dev->dev_ops->queue_setup)(dev, queue_id, queue_conf);\n }\n \n@@ -766,6 +769,7 @@ rte_event_port_setup(uint8_t dev_id, uint8_t port_id,\n \tif (!diag)\n \t\tdiag = rte_event_port_unlink(dev_id, port_id, NULL, 0);\n \n+\trte_eventdev_trace_port_setup(dev_id, port_id, port_conf, diag);\n \tif (diag < 0)\n \t\treturn diag;\n \n@@ -936,6 +940,7 @@ rte_event_port_link(uint8_t dev_id, uint8_t port_id,\n \tfor (i = 0; i < diag; i++)\n \t\tlinks_map[queues[i]] = (uint8_t)priorities[i];\n \n+\trte_eventdev_trace_port_link(dev_id, port_id, nb_links, diag);\n \treturn diag;\n }\n \n@@ -1001,6 +1006,7 @@ rte_event_port_unlink(uint8_t dev_id, uint8_t port_id,\n \tfor (i = 0; i < diag; i++)\n \t\tlinks_map[queues[i]] = EVENT_QUEUE_SERVICE_PRIORITY_INVALID;\n \n+\trte_eventdev_trace_port_unlink(dev_id, port_id, nb_unlinks, diag);\n \treturn diag;\n }\n \n@@ -1213,6 +1219,7 @@ rte_event_dev_start(uint8_t dev_id)\n \t}\n \n \tdiag = (*dev->dev_ops->dev_start)(dev);\n+\trte_eventdev_trace_start(dev_id, diag);\n \tif (diag == 0)\n \t\tdev->data->dev_started = 1;\n \telse\n@@ -1257,6 +1264,7 @@ rte_event_dev_stop(uint8_t dev_id)\n \n \tdev->data->dev_started = 0;\n \t(*dev->dev_ops->dev_stop)(dev);\n+\trte_eventdev_trace_stop(dev_id);\n }\n \n int\n@@ -1275,6 +1283,7 @@ rte_event_dev_close(uint8_t dev_id)\n \t\treturn -EBUSY;\n \t}\n \n+\trte_eventdev_trace_close(dev_id);\n \treturn (*dev->dev_ops->dev_close)(dev);\n }\n \ndiff --git a/lib/librte_eventdev/rte_eventdev.h b/lib/librte_eventdev/rte_eventdev.h\nindex 226f352ad..7dc832353 100644\n--- a/lib/librte_eventdev/rte_eventdev.h\n+++ b/lib/librte_eventdev/rte_eventdev.h\n@@ -215,6 +215,8 @@ extern \"C\" {\n #include <rte_memory.h>\n #include <rte_errno.h>\n \n+#include \"rte_eventdev_trace_fp.h\"\n+\n struct rte_mbuf; /* we just use mbuf pointers; no need to include rte_mbuf.h */\n struct rte_event;\n \n@@ -1343,6 +1345,7 @@ __rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id,\n \t\treturn 0;\n \t}\n #endif\n+\trte_eventdev_trace_enq_burst(dev_id, port_id, ev, nb_events, fn);\n \t/*\n \t * Allow zero cost non burst mode routine invocation if application\n \t * requests nb_events as const one\n@@ -1620,7 +1623,7 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[],\n \t\treturn 0;\n \t}\n #endif\n-\n+\trte_eventdev_trace_deq_burst(dev_id, port_id, ev, nb_events);\n \t/*\n \t * Allow zero cost non burst mode routine invocation if application\n \t * requests nb_events as const one\ndiff --git a/lib/librte_eventdev/rte_eventdev_trace.h b/lib/librte_eventdev/rte_eventdev_trace.h\nnew file mode 100644\nindex 000000000..facbe4d50\n--- /dev/null\n+++ b/lib/librte_eventdev/rte_eventdev_trace.h\n@@ -0,0 +1,311 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(C) 2020 Marvell International Ltd.\n+ */\n+\n+#ifndef _RTE_EVENTDEV_TRACE_H_\n+#define _RTE_EVENTDEV_TRACE_H_\n+\n+/**\n+ * @file\n+ *\n+ * API for ethdev trace support\n+ */\n+\n+#ifdef __cplusplus\n+extern \"C\" {\n+#endif\n+\n+#include <rte_trace_point.h>\n+\n+#include \"rte_eventdev.h\"\n+#include \"rte_event_eth_rx_adapter.h\"\n+#include \"rte_event_timer_adapter.h\"\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_configure,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id,\n+\t\t\t const struct rte_event_dev_config *dev_conf,\n+\t\t\t int rc),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u32(dev_conf->dequeue_timeout_ns);\n+\trte_trace_point_emit_i32(dev_conf->nb_events_limit);\n+\trte_trace_point_emit_u8(dev_conf->nb_event_queues);\n+\trte_trace_point_emit_u8(dev_conf->nb_event_ports);\n+\trte_trace_point_emit_u32(dev_conf->nb_event_queue_flows);\n+\trte_trace_point_emit_u32(dev_conf->nb_event_port_dequeue_depth);\n+\trte_trace_point_emit_u32(dev_conf->nb_event_port_enqueue_depth);\n+\trte_trace_point_emit_u32(dev_conf->event_dev_cfg);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_queue_setup,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t queue_id,\n+\t\t\t const struct rte_event_queue_conf *queue_conf),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u8(queue_id);\n+\trte_trace_point_emit_u32(queue_conf->nb_atomic_flows);\n+\trte_trace_point_emit_u32(queue_conf->nb_atomic_order_sequences);\n+\trte_trace_point_emit_u32(queue_conf->event_queue_cfg);\n+\trte_trace_point_emit_u8(queue_conf->schedule_type);\n+\trte_trace_point_emit_u8(queue_conf->priority);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_port_setup,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id,\n+\t\t\t const struct rte_event_port_conf *port_conf,\n+\t\t\t int rc),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u8(port_id);\n+\trte_trace_point_emit_i32(port_conf->new_event_threshold);\n+\trte_trace_point_emit_u16(port_conf->dequeue_depth);\n+\trte_trace_point_emit_u16(port_conf->enqueue_depth);\n+\trte_trace_point_emit_u8(port_conf->disable_implicit_release);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_port_link,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id,\n+\t\t\t uint16_t nb_links, int rc),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u8(port_id);\n+\trte_trace_point_emit_u16(nb_links);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_port_unlink,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id,\n+\t\t\t uint16_t nb_unlinks, int rc),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u8(port_id);\n+\trte_trace_point_emit_u16(nb_unlinks);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_start,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, int rc),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_stop,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id),\n+\trte_trace_point_emit_u8(dev_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_close,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id),\n+\trte_trace_point_emit_u8(dev_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_rx_adapter_create,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint8_t dev_id,\n+\t\t\t void *conf_cb, void *conf_arg),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_ptr(conf_cb);\n+\trte_trace_point_emit_ptr(conf_arg);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_rx_adapter_free,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id),\n+\trte_trace_point_emit_u8(adptr_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_rx_adapter_queue_add,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint16_t eth_dev_id,\n+\t\t\t int32_t rx_queue_id,\n+\t\t\t const struct rte_event_eth_rx_adapter_queue_conf\n+\t\t\t *queue_conf, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u16(eth_dev_id);\n+\trte_trace_point_emit_i32(rx_queue_id);\n+\trte_trace_point_emit_u32(queue_conf->rx_queue_flags);\n+\trte_trace_point_emit_u16(queue_conf->servicing_weight);\n+\trte_trace_point_emit_u8(queue_conf->ev.queue_id);\n+\trte_trace_point_emit_u8(queue_conf->ev.priority);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_rx_adapter_queue_del,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint16_t eth_dev_id,\n+\t\t\t int32_t rx_queue_id, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u16(eth_dev_id);\n+\trte_trace_point_emit_i32(rx_queue_id);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_rx_adapter_start,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id),\n+\trte_trace_point_emit_u8(adptr_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_rx_adapter_stop,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id),\n+\trte_trace_point_emit_u8(adptr_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_tx_adapter_create,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint8_t dev_id, void *conf_cb,\n+\t\t\t struct rte_event_port_conf *port_conf,\n+\t\t\t int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_i32(port_conf->new_event_threshold);\n+\trte_trace_point_emit_u16(port_conf->dequeue_depth);\n+\trte_trace_point_emit_u16(port_conf->enqueue_depth);\n+\trte_trace_point_emit_u8(port_conf->disable_implicit_release);\n+\trte_trace_point_emit_ptr(conf_cb);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_tx_adapter_free,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_tx_adapter_queue_add,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint16_t eth_dev_id,\n+\t\t\t int32_t queue, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u16(eth_dev_id);\n+\trte_trace_point_emit_i32(queue);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_tx_adapter_queue_del,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint16_t eth_dev_id,\n+\t\t\t int32_t queue, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u16(eth_dev_id);\n+\trte_trace_point_emit_i32(queue);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_tx_adapter_start,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_eth_tx_adapter_stop,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_timer_adapter_create,\n+\tRTE_TRACE_POINT_ARGS(uint16_t adapter_id, void *adapter,\n+\t\t\t const struct rte_event_timer_adapter_conf *conf,\n+\t\t\t void *conf_cb),\n+\trte_trace_point_emit_u16(adapter_id);\n+\trte_trace_point_emit_ptr(adapter);\n+\trte_trace_point_emit_ptr(conf);\n+\trte_trace_point_emit_u8(conf->event_dev_id);\n+\trte_trace_point_emit_u16(conf->timer_adapter_id);\n+\trte_trace_point_emit_u64(conf->timer_tick_ns);\n+\trte_trace_point_emit_u64(conf->max_tmo_ns);\n+\trte_trace_point_emit_u64(conf->nb_timers);\n+\trte_trace_point_emit_u64(conf->flags);\n+\trte_trace_point_emit_ptr(conf_cb);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_timer_adapter_start,\n+\tRTE_TRACE_POINT_ARGS(const void *adapter),\n+\trte_trace_point_emit_ptr(adapter);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_timer_adapter_stop,\n+\tRTE_TRACE_POINT_ARGS(const void *adapter),\n+\trte_trace_point_emit_ptr(adapter);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_timer_adapter_free,\n+\tRTE_TRACE_POINT_ARGS(void *adapter),\n+\trte_trace_point_emit_ptr(adapter);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_crypto_adapter_create,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint8_t dev_id, void *adapter,\n+\t\t\t struct rte_event_port_conf *port_conf,\n+\t\t\t uint8_t mode),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_ptr(adapter);\n+\trte_trace_point_emit_u8(mode);\n+\trte_trace_point_emit_i32(port_conf->new_event_threshold);\n+\trte_trace_point_emit_u16(port_conf->dequeue_depth);\n+\trte_trace_point_emit_u16(port_conf->enqueue_depth);\n+\trte_trace_point_emit_u8(port_conf->disable_implicit_release);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_crypto_adapter_free,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, void *adapter),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_ptr(adapter);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_crypto_adapter_queue_pair_add,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint8_t cdev_id,\n+\t\t\t const void *event, int32_t queue_pair_id),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u8(cdev_id);\n+\trte_trace_point_emit_i32(queue_pair_id);\n+\trte_trace_point_emit_ptr(event);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_crypto_adapter_queue_pair_del,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, uint8_t cdev_id,\n+\t\t\t int32_t queue_pair_id, int rc),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_u8(cdev_id);\n+\trte_trace_point_emit_i32(queue_pair_id);\n+\trte_trace_point_emit_int(rc);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_crypto_adapter_start,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id, void *adapter),\n+\trte_trace_point_emit_u8(adptr_id);\n+\trte_trace_point_emit_ptr(adapter);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_eventdev_trace_crypto_adapter_stop,\n+\tRTE_TRACE_POINT_ARGS(uint8_t adptr_id),\n+\trte_trace_point_emit_u8(adptr_id);\n+)\n+\n+#ifdef __cplusplus\n+}\n+#endif\n+\n+#endif /* _RTE_EVENTDEV_TRACE_H_ */\ndiff --git a/lib/librte_eventdev/rte_eventdev_trace_fp.h b/lib/librte_eventdev/rte_eventdev_trace_fp.h\nnew file mode 100644\nindex 000000000..e261cf0da\n--- /dev/null\n+++ b/lib/librte_eventdev/rte_eventdev_trace_fp.h\n@@ -0,0 +1,85 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(C) 2020 Marvell International Ltd.\n+ */\n+\n+#ifndef _RTE_EVENTDEV_TRACE_FP_H_\n+#define _RTE_EVENTDEV_TRACE_FP_H_\n+\n+/**\n+ * @file\n+ *\n+ * API for ethdev trace support\n+ */\n+\n+#ifdef __cplusplus\n+extern \"C\" {\n+#endif\n+\n+#include <rte_trace_point.h>\n+\n+RTE_TRACE_POINT_FP(\n+\trte_eventdev_trace_deq_burst,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id, void *ev_table,\n+\t\t\t uint16_t nb_events),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u8(port_id);\n+\trte_trace_point_emit_ptr(ev_table);\n+\trte_trace_point_emit_u16(nb_events);\n+)\n+\n+RTE_TRACE_POINT_FP(\n+\trte_eventdev_trace_enq_burst,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id,\n+\t\t\t const void *ev_table, uint16_t nb_events,\n+\t\t\t void *enq_mode_cb),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u8(port_id);\n+\trte_trace_point_emit_ptr(ev_table);\n+\trte_trace_point_emit_u16(nb_events);\n+\trte_trace_point_emit_ptr(enq_mode_cb);\n+)\n+\n+RTE_TRACE_POINT_FP(\n+\trte_eventdev_trace_eth_tx_adapter_enqueue,\n+\tRTE_TRACE_POINT_ARGS(uint8_t dev_id, uint8_t port_id, void *ev_table,\n+\t\t\t uint16_t nb_events, const uint8_t flags),\n+\trte_trace_point_emit_u8(dev_id);\n+\trte_trace_point_emit_u8(port_id);\n+\trte_trace_point_emit_ptr(ev_table);\n+\trte_trace_point_emit_u16(nb_events);\n+\trte_trace_point_emit_u8(flags);\n+)\n+\n+RTE_TRACE_POINT_FP(\n+\trte_eventdev_trace_timer_arm_burst,\n+\tRTE_TRACE_POINT_ARGS(const void *adapter, void **evtims_table,\n+\t\t\t uint16_t nb_evtims),\n+\trte_trace_point_emit_ptr(adapter);\n+\trte_trace_point_emit_ptr(evtims_table);\n+\trte_trace_point_emit_u16(nb_evtims);\n+)\n+\n+RTE_TRACE_POINT_FP(\n+\trte_eventdev_trace_timer_arm_tmo_tick_burst,\n+\tRTE_TRACE_POINT_ARGS(const void *adapter, const uint64_t timeout_ticks,\n+\t\t\t void **evtims_table, const uint16_t nb_evtims),\n+\trte_trace_point_emit_ptr(adapter);\n+\trte_trace_point_emit_u64(timeout_ticks);\n+\trte_trace_point_emit_ptr(evtims_table);\n+\trte_trace_point_emit_u16(nb_evtims);\n+)\n+\n+RTE_TRACE_POINT_FP(\n+\trte_eventdev_trace_timer_cancel_burst,\n+\tRTE_TRACE_POINT_ARGS(const void *adapter, void **evtims_table,\n+\t\t\t uint16_t nb_evtims),\n+\trte_trace_point_emit_ptr(adapter);\n+\trte_trace_point_emit_ptr(evtims_table);\n+\trte_trace_point_emit_u16(nb_evtims);\n+)\n+\n+#ifdef __cplusplus\n+}\n+#endif\n+\n+#endif /* _RTE_EVENTDEV_TRACE_FP_H_ */\ndiff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map\nindex edfc15282..91a62cd07 100644\n--- a/lib/librte_eventdev/rte_eventdev_version.map\n+++ b/lib/librte_eventdev/rte_eventdev_version.map\n@@ -93,3 +93,45 @@ DPDK_20.0 {\n \n \tlocal: *;\n };\n+\n+EXPERIMENTAL {\n+\tglobal:\n+\n+\t# added in 20.05\n+\t__rte_eventdev_trace_configure;\n+\t__rte_eventdev_trace_queue_setup;\n+\t__rte_eventdev_trace_port_setup;\n+\t__rte_eventdev_trace_port_link;\n+\t__rte_eventdev_trace_port_unlink;\n+\t__rte_eventdev_trace_start;\n+\t__rte_eventdev_trace_stop;\n+\t__rte_eventdev_trace_close;\n+\t__rte_eventdev_trace_deq_burst;\n+\t__rte_eventdev_trace_enq_burst;\n+\t__rte_eventdev_trace_eth_rx_adapter_create;\n+\t__rte_eventdev_trace_eth_rx_adapter_free;\n+\t__rte_eventdev_trace_eth_rx_adapter_queue_add;\n+\t__rte_eventdev_trace_eth_rx_adapter_queue_del;\n+\t__rte_eventdev_trace_eth_rx_adapter_start;\n+\t__rte_eventdev_trace_eth_rx_adapter_stop;\n+\t__rte_eventdev_trace_eth_tx_adapter_create;\n+\t__rte_eventdev_trace_eth_tx_adapter_free;\n+\t__rte_eventdev_trace_eth_tx_adapter_queue_add;\n+\t__rte_eventdev_trace_eth_tx_adapter_queue_del;\n+\t__rte_eventdev_trace_eth_tx_adapter_start;\n+\t__rte_eventdev_trace_eth_tx_adapter_stop;\n+\t__rte_eventdev_trace_eth_tx_adapter_enqueue;\n+\t__rte_eventdev_trace_timer_adapter_create;\n+\t__rte_eventdev_trace_timer_adapter_start;\n+\t__rte_eventdev_trace_timer_adapter_stop;\n+\t__rte_eventdev_trace_timer_adapter_free;\n+\t__rte_eventdev_trace_timer_arm_burst;\n+\t__rte_eventdev_trace_timer_arm_tmo_tick_burst;\n+\t__rte_eventdev_trace_timer_cancel_burst;\n+\t__rte_eventdev_trace_crypto_adapter_create;\n+\t__rte_eventdev_trace_crypto_adapter_free;\n+\t__rte_eventdev_trace_crypto_adapter_queue_pair_add;\n+\t__rte_eventdev_trace_crypto_adapter_queue_pair_del;\n+\t__rte_eventdev_trace_crypto_adapter_start;\n+\t__rte_eventdev_trace_crypto_adapter_stop;\n+};\n", "prefixes": [ "v7", "29/32" ] }{ "id": 69149, "url": "