All of lore.kernel.org
 help / color / mirror / Atom feed
From: <skori@marvell.com>
To: <jerinj@marvell.com>, <nikhil.rao@intel.com>,
	<pbhagavatula@marvell.com>,  <hemant.agrawal@nxp.com>,
	<nipun.gupta@nxp.com>, <harry.van.haaren@intel.com>,
	<mattias.ronnblom@ericsson.com>, <liang.j.ma@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>
Cc: <dev@dpdk.org>, Sunil Kumar Kori <skori@marvell.com>
Subject: [PATCH v7 11/11] devtools: check event device doc tables
Date: Mon, 22 Nov 2021 13:24:14 +0530	[thread overview]
Message-ID: <20211122075414.1834651-11-skori@marvell.com> (raw)
In-Reply-To: <20211122075414.1834651-1-skori@marvell.com>

From: Sunil Kumar Kori <skori@marvell.com>

In this commit, check is added for event device, Rx,
Tx, Crypto and Timer adapters tables for all supported
drivers.

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
---
v7:
 - Rebased to 21.11 rc3
 - Fix Tx adapter capabilities for SW driver
v6:
 - Rebased to 21.11 rc2
 - Added feature matrices for all supported drivers
 - Added doc vs code check script
 
v5:
 - Rebased to 21.11
 - Added feature matrix for cnxk.
v4:
 - Rebased to 20.02
v3:
 - Removed .txt files to generate tables.
 - Use conf.py script to generate tables.
 - Add .ini file for all supported PMDs.
v2:
 - Review comments incorporated

 devtools/check-doc-vs-code.sh   |  35 ++++++++
 devtools/parse-event-support.sh | 149 ++++++++++++++++++++++++++++++++
 2 files changed, 184 insertions(+)
 create mode 100755 devtools/parse-event-support.sh

diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh
index c58c239c87..608d6e0e2e 100755
--- a/devtools/check-doc-vs-code.sh
+++ b/devtools/check-doc-vs-code.sh
@@ -66,11 +66,35 @@ check_rte_flow() # <driver>
 	fi
 }
 
+all_event_drivers()
+{
+	find $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d |
+	sed 's,.*/,,' |
+	sort
+}
+
+check_event_dev() # <driver>
+{
+	code=$rootdir/drivers/event/$1
+	doc=$rootdir/doc/guides/eventdevs/features/$1.ini
+	[ -d $code ] || return 0
+	[ -f $doc ] || return 0
+	report=$($selfdir/parse-event-support.sh $code $doc)
+	if [ -n "$report" ]; then
+		error "doc out of sync for $1"
+		echo "$report" | sed 's,^,\t,'
+	fi
+}
+
 if [ -z "$trusted_commit" ]; then
 	# check all
 	for driver in $(all_net_drivers); do
 		check_rte_flow $driver
 	done
+
+	for driver in $(all_event_drivers); do
+		check_event_dev $driver
+	done
 	exit $result
 fi
 
@@ -81,4 +105,15 @@ if has_code_change 'RTE_FLOW_.*_TYPE_' ||
 		check_rte_flow $driver
 	done
 fi
+
+if has_code_change 'RTE_EVENT_DEV_CAP_*' ||
+		has_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' ||
+		has_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' ||
+		has_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' ||
+		has_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' ||
+		has_file_change 'doc/guides/eventdevs/features'; then
+	for driver in $(all_event_drivers); do
+		check_event_dev $driver
+	done
+fi
 exit $result
diff --git a/devtools/parse-event-support.sh b/devtools/parse-event-support.sh
new file mode 100755
index 0000000000..d756977eec
--- /dev/null
+++ b/devtools/parse-event-support.sh
@@ -0,0 +1,149 @@
+#! /bin/sh -e
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(C) 2021 Marvell.
+
+# Parse event dev support of a driver directory,
+# and optionally show difference with a doc file in .ini format.
+
+dir=$1 # drivers/event/foo
+ref=$2 # doc/guides/eventdevs/features/foo.ini
+
+if [ -z "$dir" ]; then
+	echo "directory argument is required" >&2
+	exit 1
+fi
+
+# sorting order
+export LC_COLLATE=C
+
+# generate INI section
+list() # <title> <pattern>
+{
+	echo "[$1]"
+	git grep -who "$2[[:alnum:]_]*" $dir | sort -u |
+	awk 'sub(/'$2'/, "") {printf "%-20s = Y\n", tolower($0)}'
+}
+
+event_dev_sched_support()
+{
+	title="Scheduling Features"
+	pattern=$(echo "RTE_EVENT_DEV_CAP_" | awk '{print toupper($0)}')
+	list "$title" "$pattern" | grep -vwE 'void|indirect|end'
+}
+
+event_dev_rx_adptr_support()
+{
+	title="Eth Rx adapter Features"
+	pattern=$(echo "RTE_EVENT_ETH_RX_ADAPTER_CAP_" |
+		awk '{print toupper($0)}')
+	list "$title" "$pattern" | grep -vwE 'void|indirect|end'
+}
+
+event_dev_tx_adptr_support()
+{
+	title="Eth Tx adapter Features"
+	pattern=$(echo "RTE_EVENT_ETH_TX_ADAPTER_CAP_" |
+		awk '{print toupper($0)}')
+	list "$title" "$pattern" | grep -vwE 'void|indirect|end'
+}
+
+event_dev_crypto_adptr_support()
+{
+	title="Crypto adapter Features"
+	pattern=$(echo "RTE_EVENT_CRYPTO_ADAPTER_CAP_" |
+		awk '{print toupper($0)}')
+	list "$title" "$pattern" | grep -vwE 'void|indirect|end'
+}
+
+event_dev_timer_adptr_support()
+{
+	title="Timer adapter Features"
+	pattern=$(echo "RTE_EVENT_TIMER_ADAPTER_CAP_" |
+		awk '{print toupper($0)}')
+	list "$title" "$pattern" | grep -vwE 'void|indirect|end'
+}
+
+if [ -z "$ref" ]; then # generate full tables
+	event_dev_sched_support
+	echo
+	event_dev_rx_adptr_support
+	echo
+	event_dev_tx_adptr_support
+	echo
+	event_dev_crypto_adptr_support
+	echo
+	event_dev_timer_adptr_support
+	exit 0
+fi
+
+# compare with reference input
+event_dev_sched_compare()
+{
+	section="Scheduling Features]"
+	{
+		event_dev_sched_support
+		sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
+	} |
+	sed '/]/d' | # ignore section title
+	sed 's, *=.*,,' | # ignore value (better in doc than generated one)
+	sort | uniq -u | # show differences
+	sed "s,^,Scheduling Features ," # prefix with category name
+}
+
+event_dev_rx_adptr_compare()
+{
+	section="Eth Rx adapter Features]"
+	{
+		event_dev_rx_adptr_support
+		sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
+	} |
+	sed '/]/d' | # ignore section title
+	sed 's, *=.*,,' | # ignore value (better in doc than generated one)
+	sort | uniq -u | # show differences
+	sed "s,^,Eth Rx adapter Features ," # prefix with category name
+}
+
+event_dev_tx_adptr_compare()
+{
+	section="Eth Tx adapter Features]"
+	{
+		event_dev_tx_adptr_support
+		sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
+	} |
+	sed '/]/d' | # ignore section title
+	sed 's, *=.*,,' | # ignore value (better in doc than generated one)
+	sort | uniq -u | # show differences
+	sed "s,^,Eth Tx adapter Features ," # prefix with category name
+}
+
+event_dev_crypto_adptr_compare()
+{
+	section="Crypto adapter Features]"
+	{
+		event_dev_crypto_adptr_support
+		sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
+	} |
+	sed '/]/d' | # ignore section title
+	sed 's, *=.*,,' | # ignore value (better in doc than generated one)
+	sort | uniq -u | # show differences
+	sed "s,^,Crypto adapter Features ," # prefix with category name
+}
+
+event_dev_crypto_adptr_compare()
+{
+	section="Timer adapter Features]"
+	{
+		event_dev_timer_adptr_support
+		sed -n "/$section/,/]/p" "$ref" | sed '/^$/d'
+	} |
+	sed '/]/d' | # ignore section title
+	sed 's, *=.*,,' | # ignore value (better in doc than generated one)
+	sort | uniq -u | # show differences
+	sed "s,^,Timer adapter Features ," # prefix with category name
+}
+
+event_dev_sched_compare
+event_dev_rx_adptr_compare
+event_dev_tx_adptr_compare
+event_dev_crypto_adptr_compare
+event_dev_crypto_adptr_compare
-- 
2.25.1


  parent reply	other threads:[~2021-11-22  7:55 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-07 11:12 [dpdk-dev] [PATCH 1/3] doc: add skeleton for eventdevs feature metrices Sunil Kumar Kori
2019-11-07 11:12 ` [dpdk-dev] [PATCH 2/3] doc: update eventdev feature matrix for octeontx2 Sunil Kumar Kori
2019-11-07 11:12 ` [dpdk-dev] [PATCH 3/3] doc: update eventdev feature matrix for octeontx Sunil Kumar Kori
2019-11-15  7:38 ` [dpdk-dev] [PATCH 1/3] doc: add skeleton for eventdevs feature metrices Jerin Jacob
2019-11-21  7:44 ` [dpdk-dev] [PATCH v2 1/3] doc: add skeleton for eventdevs feature matrices Sunil Kumar Kori
2019-11-21  7:44   ` [dpdk-dev] [PATCH v2 2/3] doc: update eventdev feature matrix for octeontx2 Sunil Kumar Kori
2019-11-21  7:44   ` [dpdk-dev] [PATCH v2 3/3] doc: update eventdev feature matrix for octeontx Sunil Kumar Kori
2019-11-28 15:49   ` [dpdk-dev] [PATCH v2 1/3] doc: add skeleton for eventdevs feature matrices Thomas Monjalon
2019-12-03  6:27   ` [dpdk-dev] [PATCH v3 " Sunil Kumar Kori
2019-12-03  6:27     ` [dpdk-dev] [PATCH v3 2/3] doc: update eventdev feature matrix for octeontx2 Sunil Kumar Kori
2019-12-03  6:27     ` [dpdk-dev] [PATCH v3 3/3] doc: update eventdev feature matrix for octeontx Sunil Kumar Kori
2020-02-27  7:02     ` [dpdk-dev] [PATCH v4 1/3] doc: add skeleton for eventdevs feature matrices Sunil Kumar Kori
2020-02-27  7:03       ` [dpdk-dev] [PATCH v4 2/3] doc: update eventdev feature matrix for octeontx2 Sunil Kumar Kori
2020-02-27  7:03       ` [dpdk-dev] [PATCH v4 3/3] doc: update eventdev feature matrix for octeontx Sunil Kumar Kori
2021-10-22  7:48       ` [dpdk-dev] [PATCH v5 1/4] doc: add skeleton for eventdevs feature matrices skori
2021-10-22  7:48         ` [dpdk-dev] [PATCH v5 2/4] doc: update eventdev feature matrix for octeontx2 skori
2021-10-22  7:48         ` [dpdk-dev] [PATCH v5 3/4] doc: update eventdev feature matrix for octeontx skori
2021-10-22  7:48         ` [dpdk-dev] [PATCH v5 4/4] doc: update eventdev feature matrix for cnxk skori
2021-11-09 10:11         ` [dpdk-dev] [PATCH v5 1/4] doc: add skeleton for eventdevs feature matrices Jerin Jacob
2021-11-09 11:34           ` Thomas Monjalon
2021-11-11  6:40             ` [EXT] " Sunil Kumar Kori
2021-11-10  8:42           ` Mattias Rönnblom
2021-11-10  8:50             ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2021-11-10  9:29               ` [dpdk-dev] [PATCH] eventdev: negate maintenance capability flag Mattias Rönnblom
2021-11-10  9:55                 ` Van Haaren, Harry
2021-11-10 10:06                   ` [dpdk-dev] [PATCH v2] " Mattias Rönnblom
2021-11-10 10:07                   ` [dpdk-dev] [PATCH] " Mattias Rönnblom
2021-11-10 10:43                     ` Jerin Jacob
2021-11-10 11:32                       ` [dpdk-dev] [PATCH v3] " Mattias Rönnblom
2021-11-10 18:55                         ` Jerin Jacob
2021-11-10 11:14                   ` [dpdk-dev] [PATCH v2] eventdev: fix Rx adapter stalls on event device backpressure Mattias Rönnblom
2021-11-10 11:23                     ` Jayatheerthan, Jay
2021-11-10 18:56                       ` Jerin Jacob
2021-11-15 13:15         ` [PATCH v6 01/11] doc: add skeleton for eventdevs feature matrices skori
2021-11-15 13:15           ` [PATCH v6 02/11] doc: update eventdev feature matrix for octeontx skori
2021-11-15 13:15           ` [PATCH v6 03/11] doc: update eventdev feature matrix for octeontx2 skori
2021-11-15 13:15           ` [PATCH v6 04/11] doc: update eventdev feature matrix for cn9k skori
2021-11-15 13:15           ` [PATCH v6 05/11] doc: update eventdev feature matrix for cn10k skori
2021-11-15 13:15           ` [PATCH v6 06/11] doc: update eventdev feature matrix for dpaa skori
2021-11-15 13:15           ` [PATCH v6 07/11] doc: update eventdev feature matrix for dpaa2 skori
2021-11-15 13:15           ` [PATCH v6 08/11] doc: update eventdev feature matrix for SW skori
2021-11-15 13:15           ` [PATCH v6 09/11] doc: update eventdev feature matrix for opdl skori
2021-11-15 13:15           ` [PATCH v6 10/11] doc: update eventdev feature matrix for dsw skori
2021-11-15 13:15           ` [PATCH v6 11/11] devtools: check event device doc tables skori
2021-11-22  7:54           ` [PATCH v7 01/11] doc: add skeleton for eventdevs feature matrices skori
2021-11-22  7:54             ` [PATCH v7 02/11] doc: update eventdev feature matrix for octeontx skori
2021-11-22  7:54             ` [PATCH v7 03/11] doc: update eventdev feature matrix for octeontx2 skori
2021-11-22  7:54             ` [PATCH v7 04/11] doc: update eventdev feature matrix for cn9k skori
2021-11-22  7:54             ` [PATCH v7 05/11] doc: update eventdev feature matrix for cn10k skori
2021-11-22 18:25               ` Jerin Jacob
2021-11-22  7:54             ` [PATCH v7 06/11] doc: update eventdev feature matrix for dpaa skori
2021-11-22  7:54             ` [PATCH v7 07/11] doc: update eventdev feature matrix for dpaa2 skori
2021-11-22  7:54             ` [PATCH v7 08/11] doc: update eventdev feature matrix for SW skori
2021-11-22  7:54             ` [PATCH v7 09/11] doc: update eventdev feature matrix for opdl skori
2021-11-22  7:54             ` [PATCH v7 10/11] doc: update eventdev feature matrix for dsw skori
2021-11-22  7:54             ` skori [this message]
2021-11-22 18:35               ` [PATCH v7 11/11] devtools: check event device doc tables Jerin Jacob
2021-11-23 11:07             ` [PATCH v8 01/10] doc: add skeleton for eventdevs feature matrices skori
2021-11-23 11:07               ` [PATCH v8 02/10] doc: update eventdev feature matrix for octeontx skori
2021-11-23 11:07               ` [PATCH v8 03/10] doc: update eventdev feature matrix for octeontx2 skori
2021-11-23 11:07               ` [PATCH v8 04/10] doc: update eventdev feature matrix for cnxk skori
2021-11-23 11:07               ` [PATCH v8 05/10] doc: update eventdev feature matrix for dpaa skori
2021-11-23 11:07               ` [PATCH v8 06/10] doc: update eventdev feature matrix for dpaa2 skori
2021-11-23 11:07               ` [PATCH v8 07/10] doc: update eventdev feature matrix for SW skori
2021-11-23 11:07               ` [PATCH v8 08/10] doc: update eventdev feature matrix for opdl skori
2021-11-23 11:07               ` [PATCH v8 09/10] doc: update eventdev feature matrix for dsw skori
2021-11-23 11:07               ` [PATCH v8 10/10] devtools: check event device doc tables skori
2021-11-24 10:52                 ` Thomas Monjalon
2021-11-24 11:16                   ` [EXT] " Sunil Kumar Kori
2021-11-24 11:21                     ` Thomas Monjalon
2021-11-24 10:03               ` [PATCH v8 01/10] doc: add skeleton for eventdevs feature matrices Thomas Monjalon
2021-11-24 10:30                 ` [EXT] " Sunil Kumar Kori
2021-11-24 10:43                   ` Thomas Monjalon
2021-11-24 12:35                     ` Sunil Kumar Kori
2021-11-24 12:41                       ` Thomas Monjalon
2021-11-24 12:46                         ` Sunil Kumar Kori
2021-11-24 13:05                           ` Sunil Kumar Kori
2021-11-24 10:48               ` Thomas Monjalon
2021-11-24 11:12                 ` [EXT] " Sunil Kumar Kori
2021-11-24 12:14               ` [PATCH v1 1/1] doc: update eventdev feature matrix for dlb2 skori
2021-11-24 13:03               ` [PATCH v9 1/1] doc: add eventdevs feature matrices skori
2021-11-26 14:55                 ` Thomas Monjalon
2021-11-15 18:08         ` [dpdk-dev] [PATCH v5 1/4] doc: add skeleton for " Jerin Jacob
2021-11-23 16:44         ` Jerin Jacob
2021-11-24  8:06           ` Thomas Monjalon
2021-11-24  8:14             ` Jerin Jacob

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211122075414.1834651-11-skori@marvell.com \
    --to=skori@marvell.com \
    --cc=dev@dpdk.org \
    --cc=harry.van.haaren@intel.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerinj@marvell.com \
    --cc=liang.j.ma@intel.com \
    --cc=mattias.ronnblom@ericsson.com \
    --cc=nikhil.rao@intel.com \
    --cc=nipun.gupta@nxp.com \
    --cc=pbhagavatula@marvell.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.