[dpdk-dev] [PATCH v9 2/3] devtools: prevent use of rte atomic APIs in future patches
Phil Yang
phil.yang at arm.com
Fri Jul 17 07:08:38 CEST 2020
In order to deprecate the rte_atomic and rte_smp barrier APIs, prevent
the patches from using these APIs and __sync builtins in new code.
On x86 the __atomic_thread_fence(__ATOMIC_SEQ_CST) is quite expensive
for SMP case. Flag the new code which use __atomic_thread_fence API.
Signed-off-by: Phil Yang <phil.yang at arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang at arm.com>
---
devtools/checkpatches.sh | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
index 58021aa..990a4d0 100755
--- a/devtools/checkpatches.sh
+++ b/devtools/checkpatches.sh
@@ -77,6 +77,41 @@ check_forbidden_additions() { # <patch>
-f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
"$1" || res=1
+ # refrain from new additions of 16/32/64 bits rte_atomic_xxx()
+ # multiple folders and expressions are separated by spaces
+ awk -v FOLDERS="lib drivers app examples" \
+ -v EXPRESSIONS="rte_atomic[0-9][0-9]_.*\\\(" \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using rte_atomicNN_xxx' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # refrain from new additions of rte_smp_XXmb()
+ # multiple folders and expressions are separated by spaces
+ awk -v FOLDERS="lib drivers app examples" \
+ -v EXPRESSIONS="rte_smp_(r|w)?mb\\\(" \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using rte_smp_[r/w]mb' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # refrain from using compiler __sync builtins
+ awk -v FOLDERS="lib drivers app examples" \
+ -v EXPRESSIONS="__sync_.*\\\(" \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using __sync_xxx builtins' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
+ # refrain from using compiler __atomic_thread_fence()
+ # It should be avoided on x86 for SMP case.
+ awk -v FOLDERS="lib drivers app examples" \
+ -v EXPRESSIONS="__atomic_thread_fence\\\(" \
+ -v RET_ON_FAIL=1 \
+ -v MESSAGE='Using __atomic_thread_fence' \
+ -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \
+ "$1" || res=1
+
# svg figures must be included with wildcard extension
# because of png conversion for pdf docs
awk -v FOLDERS='doc' \
--
2.7.4
More information about the dev
mailing list