Re: [PATCH v8 2/3] perf tests: avoid storing an absolute path in perf binary

From: Arnaldo Carvalho de Melo
Date: Fri May 28 2021 - 08:48:40 EST


Em Fri, May 28, 2021 at 11:13:09AM +0000, Denys Zagorui -X (dzagorui - GLOBALLOGIC INC at Cisco) escreveu:
>
> > I noticed this is failing the test, nothing is being appended. I'll
> > investigate later. Can you try to reproduce this? I build perf with:
>
> Maybe this test should fail.

I don't think so :-)

> Path is being appended only if perf is invoked from the build
> directory (basically if there is python dir near perf binary this path
> will be added to sys.path)

And that is ok for a developer, but I agree with you, we shouldn't have
such hardcoded build directories in a production binary.

> I'm not sure if install-bin task installs perf.so to system i mean
> before this patch python binary contains an absolute path to its build
> directory and if this build dir is deleted this test also will fail.

That is what is happening, yes.

> Maybe we should use export PYTHONPATH=<build dir>/python for such test

Agreed, can you cook up a patch that does that in the Makefile that
runs the 'perf python' in tools/perf/tests/?

One other suggestion: When the test fails, say when we run 'perf test
python' directly, it could check if PYTHONPATH is set and if not, warn
the user, something like:

⬢[acme@toolbox perf]$ perf test python
19: 'import perf' in python : FAILED! (Please set the PYTHONPATH env variable)

> Thanks,
> Denys
>
> > alias m='perf stat -e cycles:u,instructions:u make -k CORESIGHT=1 BUILD_BPF_SKEL=1 PYTHON=python3 O=/tmp/build/perf -C tools/perf install-bin && perf test python'
> >
> >
> > ⬢[acme@toolbox perf]$ perf test python
> > 19: 'import perf' in python : FAILED!
> > ⬢[acme@toolbox perf]$ perf test -v python
> > Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
> > 19: 'import perf' in python :

--

- Arnaldo