Re: [PATCH v1 1/2] perf test: Add an 'import perf' test shell script
From: Arnaldo Carvalho de Melo
Date: Wed Oct 01 2025 - 09:42:37 EST
On Tue, Sep 30, 2025 at 01:02:55PM -0700, Ian Rogers wrote:
> On Wed, Sep 3, 2025 at 11:42 AM Ian Rogers <irogers@xxxxxxxxxx> wrote:
> >
> > The 'import perf' test needs to set up a path to the python module as
> > well as to know the python command to invoke. These are hard coded at
> > build time to be build a directory and the python used in the build,
> > which is less than desirable. Avoid the hard coded values by reusing
> > the existing shell script python setup and determine a potential built
> > python module via the path of the perf executable.
> >
> > Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
>
> Ping.
There is another patch in this area to make it work, right?
After applying this one I get a failure, only when I set PYTHONPATH it
works:
⬢ [acme@toolbx perf-tools-next]$ export PYTHONPATH=/tmp/build/perf-tools-next/python_ext_build/lib/
⬢ [acme@toolbx perf-tools-next]$ perf test -v pytho
Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
88: 'import perf' in python : Ok
⬢ [acme@toolbx perf-tools-next]$
- Arnaldo
> Thanks,
> Ian
>
> > ---
> > tools/perf/tests/shell/python-use.sh | 36 ++++++++++++++++++++++++++++
> > 1 file changed, 36 insertions(+)
> > create mode 100755 tools/perf/tests/shell/python-use.sh
> >
> > diff --git a/tools/perf/tests/shell/python-use.sh b/tools/perf/tests/shell/python-use.sh
> > new file mode 100755
> > index 000000000000..fd2ee5390060
> > --- /dev/null
> > +++ b/tools/perf/tests/shell/python-use.sh
> > @@ -0,0 +1,36 @@
> > +#!/bin/bash
> > +# 'import perf' in python
> > +# SPDX-License-Identifier: GPL-2.0
> > +# Just test if we can load the python binding.
> > +set -e
> > +
> > +shelldir=$(dirname "$0")
> > +# shellcheck source=lib/setup_python.sh
> > +. "${shelldir}"/lib/setup_python.sh
> > +
> > +MODULE_DIR=$(dirname "$(which perf)")/python
> > +
> > +if [ -d "$MODULE_DIR" ]
> > +then
> > + CMD=$(cat <<EOF
> > +import sys
> > +sys.path.insert(0, '$MODULE_DIR')
> > +import perf
> > +print('success!')
> > +EOF
> > + )
> > +else
> > + CMD=$(cat <<EOF
> > +import perf
> > +print('success!')
> > +EOF
> > + )
> > +fi
> > +
> > +echo -e "Testing 'import perf' with:\n$CMD"
> > +
> > +if ! echo "$CMD" | $PYTHON | grep -q "success!"
> > +then
> > + exit 1
> > +fi
> > +exit 0
> > --
> > 2.51.0.338.gd7d06c2dae-goog
> >