devtools: fix tracepoint symbols check

Message ID 20200424105331.3643868-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Headers
Series devtools: fix tracepoint symbols check |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-testing fail Testing issues
ci/Intel-compilation fail apply issues

Commit Message

Thomas Monjalon April 24, 2020, 10:53 a.m. UTC
  The tracepoint symbols __rte_*_trace_* are defined via a macro,
adding prefix "__", so they cannot be found by map checker.
Those symbols defined by RTE_TRACE_POINT and RTE_TRACE_POINT_FP
are checked without the generated prefix.

The same logic is applied to per-lcore variables, previously skipped.

Fixes: 6c232fc44c74 ("trace: add generic tracepoints")
Fixes: 4931010619fe ("trace: add alarm tracepoints")
Fixes: 52f409d614a0 ("trace: add memory tracepoints")
Fixes: 402321cfca9b ("trace: add memzone tracepoints")
Fixes: 0baa1e01c339 ("trace: add thread tracepoints")
Fixes: 05c4105738d8 ("trace: add interrupt tracepoints")
Fixes: 78d44153de8f ("ethdev: add tracepoints")
Fixes: 32e326869ed6 ("eventdev: add tracepoints")
Fixes: 4cf30e3f3c35 ("cryptodev: add tracepoints")
Fixes: 40b75c73d1c6 ("mempool: add tracepoints")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 devtools/check-symbol-maps.sh | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
  

Comments

David Marchand April 24, 2020, 12:43 p.m. UTC | #1
On Fri, Apr 24, 2020 at 12:53 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> The tracepoint symbols __rte_*_trace_* are defined via a macro,
> adding prefix "__", so they cannot be found by map checker.
> Those symbols defined by RTE_TRACE_POINT and RTE_TRACE_POINT_FP
> are checked without the generated prefix.
>
> The same logic is applied to per-lcore variables, previously skipped.

per core or per_lcore_

>
> Fixes: 6c232fc44c74 ("trace: add generic tracepoints")
> Fixes: 4931010619fe ("trace: add alarm tracepoints")
> Fixes: 52f409d614a0 ("trace: add memory tracepoints")
> Fixes: 402321cfca9b ("trace: add memzone tracepoints")
> Fixes: 0baa1e01c339 ("trace: add thread tracepoints")
> Fixes: 05c4105738d8 ("trace: add interrupt tracepoints")
> Fixes: 78d44153de8f ("ethdev: add tracepoints")
> Fixes: 32e326869ed6 ("eventdev: add tracepoints")
> Fixes: 4cf30e3f3c35 ("cryptodev: add tracepoints")
> Fixes: 40b75c73d1c6 ("mempool: add tracepoints")
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  devtools/check-symbol-maps.sh | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/devtools/check-symbol-maps.sh b/devtools/check-symbol-maps.sh
> index e137d48a49..7fdfaa11c4 100755
> --- a/devtools/check-symbol-maps.sh
> +++ b/devtools/check-symbol-maps.sh
> @@ -12,10 +12,14 @@ find_orphan_symbols ()
>      for map in $(find lib drivers -name '*.map') ; do
>          for sym in $(sed -rn 's,^([^}]*_.*);,\1,p' $map) ; do
>              if echo $sym | grep -q '^per_lcore_' ; then
> -                continue
> +                symsrc=${sym#per_lcore_}
> +            elif echo $sym | grep -q '^__rte_.*_trace_' ; then
> +                symsrc=${sym#__}
> +            else
> +                symsrc=$sym
>              fi
>              if ! grep -q -r --exclude=$(basename $map) \
> -                    -w $sym $(dirname $map) ; then
> +                    -w $symsrc $(dirname $map) ; then
>                  echo "$map: $sym"
>              fi
>          done
> --
> 2.26.0

Sorry I missed this.
But on the plus side, we now validate per_lcore_ variables too :-).

Acked-by: David Marchand <david.marchand@redhat.com>
  
Thomas Monjalon April 24, 2020, 1:06 p.m. UTC | #2
24/04/2020 14:43, David Marchand:
> On Fri, Apr 24, 2020 at 12:53 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > The tracepoint symbols __rte_*_trace_* are defined via a macro,
> > adding prefix "__", so they cannot be found by map checker.
> > Those symbols defined by RTE_TRACE_POINT and RTE_TRACE_POINT_FP
> > are checked without the generated prefix.
> >
> > The same logic is applied to per-lcore variables, previously skipped.
> 
> per core or per_lcore_
> 
> >
> > Fixes: 6c232fc44c74 ("trace: add generic tracepoints")
> > Fixes: 4931010619fe ("trace: add alarm tracepoints")
> > Fixes: 52f409d614a0 ("trace: add memory tracepoints")
> > Fixes: 402321cfca9b ("trace: add memzone tracepoints")
> > Fixes: 0baa1e01c339 ("trace: add thread tracepoints")
> > Fixes: 05c4105738d8 ("trace: add interrupt tracepoints")
> > Fixes: 78d44153de8f ("ethdev: add tracepoints")
> > Fixes: 32e326869ed6 ("eventdev: add tracepoints")
> > Fixes: 4cf30e3f3c35 ("cryptodev: add tracepoints")
> > Fixes: 40b75c73d1c6 ("mempool: add tracepoints")
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> 
> Acked-by: David Marchand <david.marchand@redhat.com>

Applied with updated explanations.
  

Patch

diff --git a/devtools/check-symbol-maps.sh b/devtools/check-symbol-maps.sh
index e137d48a49..7fdfaa11c4 100755
--- a/devtools/check-symbol-maps.sh
+++ b/devtools/check-symbol-maps.sh
@@ -12,10 +12,14 @@  find_orphan_symbols ()
     for map in $(find lib drivers -name '*.map') ; do
         for sym in $(sed -rn 's,^([^}]*_.*);,\1,p' $map) ; do
             if echo $sym | grep -q '^per_lcore_' ; then
-                continue
+                symsrc=${sym#per_lcore_}
+            elif echo $sym | grep -q '^__rte_.*_trace_' ; then
+                symsrc=${sym#__}
+            else
+                symsrc=$sym
             fi
             if ! grep -q -r --exclude=$(basename $map) \
-                    -w $sym $(dirname $map) ; then
+                    -w $symsrc $(dirname $map) ; then
                 echo "$map: $sym"
             fi
         done