Rte_memcpy need not be used for the simple case of copying
a fix sized because it is not faster and will hide problems
from code analysis tools. Static and dynamic analyzers
special case memcpy() and can find issues that rte_memcpy()
will hide.

Note: many platforms use memcpy instead of rte_memcpy already.
The only reason rte_memcpy() was added in original DPDK was that
the older Gcc was doing slower on x86 than the special rte_memcpy()
when handling larger size copies.

Signed-off-by: Stephen Hemminger <[email protected]>
---
 devtools/cocci/rte_memcpy_fixed.cocci | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 devtools/cocci/rte_memcpy_fixed.cocci

diff --git a/devtools/cocci/rte_memcpy_fixed.cocci 
b/devtools/cocci/rte_memcpy_fixed.cocci
new file mode 100644
index 0000000000..1f264711eb
--- /dev/null
+++ b/devtools/cocci/rte_memcpy_fixed.cocci
@@ -0,0 +1,15 @@
+//
+// rte_memcpy should not be used for simple fixed size structure
+// because compiler's are smart enough to inline these.
+//
+@@
+expression src, dst, E;
+constant size;
+@@
+(
+- rte_memcpy(dst, src, sizeof(E))
++ memcpy(dst, src, sizeof(E))
+|
+- rte_memcpy(dst, src, size)
++ memcpy(dst, src, size)
+)
-- 
2.53.0

Reply via email to