From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Yang Jihong <yangjihong1@huawei.com>
Cc: peterz@infradead.org, mingo@redhat.com, mark.rutland@arm.com,
alexander.shishkin@linux.intel.com, jolsa@kernel.org,
namhyung@kernel.org, irogers@google.com, adrian.hunter@intel.com,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] perf build: Add loading python binding check to python.so build
Date: Wed, 8 Nov 2023 17:35:53 -0300 [thread overview]
Message-ID: <ZUvxKXu4+KZeE8pX@kernel.org> (raw)
In-Reply-To: <20231030111438.1357962-1-yangjihong1@huawei.com>
Em Mon, Oct 30, 2023 at 11:14:37AM +0000, Yang Jihong escreveu:
> Add loading python binding check to python.so build so that problem can be
> detected in advance in the build phase instead of being left to `perf test`
> phase.
>
> In normal scenarios, the original build is not affected:
>
> $ cd tools/perf
> $ rm -rf /tmp/perf; mkdir /tmp/perf; make O=/tmp/perf
> $ echo $?
> 0
> $ cd /tmp/perf
> $ ./perf test python
> 19: 'import perf' in python : Ok
>
> Create an error scenario, for example, delete util/rlimit.c from
> util/python-ext-sources:
This will make _all_ perf builds incur the cost of this :-\
I do it with an alias because I notice it is unfortunately common for
people to send pull requests without running 'perf test' before, but
with this in place the 'make -C tools/perf build' will be made slower
for no reason :-\
I picked the second patch, thanks.
- Arnaldo
> $ cd tools/perf
> $ sed -i 's@util/rlimit.c@#util/rlimit.c@g' util/python-ext-sources
> $ grep rlimit util/python-ext-sources
> #util/rlimit.c
> $ rm -rf /tmp/perf; mkdir /tmp/perf; make JOBS=1 O=/tmp/perf
> <SNIP>
> GEN /tmp/perf/python/perf.cpython-310-x86_64-linux-gnu.so
> Error: Load python binding failed. See /tmp/perf/python_ext_build/lib//build.log for more details
> make[2]: *** [Makefile.perf:644: /tmp/perf/python/perf.cpython-310-x86_64-linux-gnu.so] Error 1
> make[1]: *** [Makefile.perf:242: sub-make] Error 2
> make: *** [Makefile:70: all] Error 2
> $ cat /tmp/perf/python_ext_build/lib//build.log
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> ImportError: /tmp/perf/python_ext_build/lib/perf.cpython-310-x86_64-linux-gnu.so: undefined symbol: rlimit__increase_nofile
>
> Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
> ---
> tools/perf/Makefile.perf | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index d80dcaa5a1e3..a2449c4890ad 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -645,7 +645,13 @@ $(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX): $(PYTHON_EXT_SRCS) $(PYTHON_EXT_
> CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' \
> $(PYTHON_WORD) util/setup.py \
> --quiet build_ext; \
> - cp $(PYTHON_EXTBUILD_LIB)perf*.so $(OUTPUT)python/
> + $(PYTHON_WORD) -c 'import sys; sys.path.insert(0, "$(PYTHON_EXTBUILD_LIB)"); import perf' 2>$(PYTHON_EXTBUILD_LIB)/build.log; \
> + if [ $$? -ne 0 ]; then \
> + echo "Error: Load python binding failed. See $(PYTHON_EXTBUILD_LIB)/build.log for more details"; \
> + exit 1; \
> + else \
> + cp $(PYTHON_EXTBUILD_LIB)perf*.so $(OUTPUT)python/; \
> + fi
>
> python_perf_target:
> @echo "Target is: $(OUTPUT)python/perf$(PYTHON_EXTENSION_SUFFIX)"
> --
> 2.34.1
>
--
- Arnaldo
prev parent reply other threads:[~2023-11-08 20:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-30 11:14 [PATCH 1/2] perf build: Add loading python binding check to python.so build Yang Jihong
2023-10-30 11:14 ` [PATCH 2/2] perf tools: Add the python_ext_build directory to .gitignore Yang Jihong
2023-11-01 4:51 ` [PATCH 1/2] perf build: Add loading python binding check to python.so build Namhyung Kim
2023-11-08 20:35 ` Arnaldo Carvalho de Melo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZUvxKXu4+KZeE8pX@kernel.org \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=yangjihong1@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.