Messages in this thread | | | From | Ian Rogers <> | Date | Wed, 3 Aug 2022 17:26:39 -0700 | Subject | Re: [PATCH] perf symbol: Fail to read phdr workaround |
| |
On Wed, Aug 3, 2022 at 8:25 AM Leo Yan <leo.yan@linaro.org> wrote: > > Hi Arnaldo, Ian, > > On Mon, Aug 01, 2022 at 09:38:23AM -0300, Arnaldo Carvalho de Melo wrote: > > [...] > > > I also think we could have something like a 'perf test' mode where, when > > asked to, it would enable tests that involve downloading such files to > > perform tests, such as this dacapo benchmark, and then would test if the > > output matches expectations. > > I am working on testing script for java symbols, one of the steps shared by > Ian is: > > # /tmp/perf/perf record -k 1 java -agentpath:/tmp/perf/libperf-jvmti.so \ > -jar dacapo-9.12-MR1-bach.jar -n 10 fop > > The question is how we can specify the path for the lib > libperf-jvmti.so in the testing script? > > If we can run the test case from the root folder of Linux kernel > source code, the lib libperf-jvmti.so can be found in the folder > $linux/tools/perf, but for the integration testing the lib should be > placed in an installed folder. Any suggestion if we have exited > way to specify the path for libperf-jvmti.so, or need to introduce a > new shell envorinment variable for the lib path?
There is a hack in 'perf test' where we assume a few paths to tests: https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/tree/tools/perf/tests/builtin-test.c?h=perf/core#n308 so in this case we could look in the same directory. There is also a #define for PERF_EXEC_PATH.
I'd prefer it if the test could be self contained for example:
echo "int fib(int x) { return x > 1 ? fib(x - 2) + fib(x - 1) : 1; } int q = 0; for(int i=0; i < 10; i++) q += fib(i); System.out.println(q);" | /tmp/perf/perf record -k 1 jshell -J-agentpath:/tmp/perf/libperf-jvmti.so
where jshell runs on the JVM and so we should get some jitted execution time.
Thanks, Ian
> Thanks, > Leo
| |