Ok, I found two problems. On Thu, Jun 22, 2023 at 2:33 PM Namhyung Kim <namhy...@kernel.org> wrote: > > Hello Aditya, > > On Wed, Jun 21, 2023 at 11:43 AM Aditya Gupta <adit...@linux.ibm.com> wrote: > > > > Hello Namhyung, > > > > On 21/06/23 20:53, Namhyung Kim wrote: > > > Hello Aditya, > > > > > > On Wed, Jun 21, 2023 at 3:05 AM Aditya Gupta <adit...@linux.ibm.com> > > > wrote: > > >> Hello Namhyung, > > >> > > >> On 21/06/23 06:18, Namhyung Kim wrote: > > >>> ... > > >>> > > >>> $ sudo ./perf test -v task > > >>> 114: perf script task-analyzer tests : > > >>> --- start --- > > >>> test child forked, pid 1771042 > > >>> Please specify a valid report script(see 'perf script -l' for listing)
The first one is related to this message. It couldn't find the script (task-analyzer.py) because PERF_EXEC_PATH is not set. Running with --exec-path=$PWD was ok, but I got a segfault. The other problem is in set_regs_in_dict(). It tries to capture register values in the sample and save them to a dictionary. The sample doesn't have registers so it should have no problem. But the 'bf' was not initialized properly when size is 0, and it led PyUnicode_FromString() returning NULL. After the changes, it ran ok: $ sudo ./perf test -v task 116: perf script task-analyzer tests : --- start --- test child forked, pid 204088 PASS: "test_basic" PASS: "test_ns_rename" PASS: "test_ms_filtertasks_highlight" PASS: "test_extended_times_timelimit_limittasks" PASS: "test_summary" PASS: "test_summaryextended" PASS: "test_summaryonly" PASS: "test_extended_times_summary_ns" PASS: "test_extended_times_summary_ns" PASS: "test_csv" PASS: "test_csvsummary" PASS: "test_csv_extended_times" PASS: "test_csvsummary_extended" test child finished with 0 ---- end ---- perf script task-analyzer tests: Ok I'll send the fixes soon. Thanks, Namhyung > > >>> FAIL: "invocation of perf command failed" Error message: "" > > >>> FAIL: "test_basic" Error message: "Failed to find required > > >>> string:'Comm'." > > >>> Please specify a valid report script(see 'perf script -l' for listing) > > >>> FAIL: "invocation of perf command failed" Error message: "" > > >>> FAIL: "test_ns_rename" Error message: "Failed to find required > > >>> string:'Comm'." > > >>> ... > > >>> test child finished with -1 > > >>> ---- end ---- > > >>> perf script task-analyzer tests: FAILED! > > >> Can you please check if your environment has libtraceevent devel > > >> libraries (or did you compile with `make NO_LIBTRACEEVENT=1`) ? When > > >> libtraceevent support is not there, perf record fails and so perf.data > > >> doesn't contain the strings it's searching for and hence those errors > > >> > > >> The error you mentioned has been mentioned and fixed in patch 17/17 of > > >> this series. > > > Thanks for your reply but It has libtraceevent. Also, shouldn't it > > > skip if it's not? > > > > > > Thanks, > > > Namhyung > > > > The skipping is handled in the 17th patch in this series, and > > considering that patch has also been applied, it will skip the tests if > > perf wasn't built with proper libtraceevent support. > > Right, I tested it with the whole series applied. > It skipped to run when I disable libtraceevent build. > > > > > Back to the error, Sorry but I tested again on my system and am unable to > > reproduce the issue you are seeing when built with libtraceevent support. > > > > This is what I did: > > > > 0. git clone --depth=1 https://github.com/torvalds/linux > > 0. cd linux/tools/perf > > 0. git am patch_15/17.patch > > > > > I applied ONLY this patch (15/17) of this series, to a fresh linux tree > > > > 1. dnf install libtraceevent-devel > > 2. make clean && make > > 3. sudo ./perf test -v "perf script task-analyzer tests" # Working > > fine, tests passed > > > > 4. dnf remove libtraceevent-devel > > 5. make clean && make # There will > > also be a warning during build: "libtraceevent is missing limiting > > functionality" > > 6. sudo ./perf test -v "perf script task-analyzer tests" # Fails with > > the error you posted, which was the case till now, it's skipped when the > > 17th patch is also applied and perf built without libtraceevent support > > > > The error in the second case (without proper libtraceevent support) is > > expected, as it was the case till now, that is fixed by the 17th patch, try > > applying that also and build perf with `make NO_LIBTRACEEVENT=1`, it will > > skip then. > > > > Can you guide me with the steps to reproduce the error ? > > You can try the perf-tools-next branch in the perf/perft-tools-next.git repo. > > git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git > > $ make clean all > $ sudo ./perf test -v task > > > > > Sidenote: Just in case, please ensure you are running the perf as root here > > as `perf record -e sched:sched_switch -a -- sleep 1` requires root, which > > has been used in `prepare_perf_data` > > Sure, I ran the perf test as root. > > Thanks, > Namhyung