Patch "perf tests task_analyzer: Skip tests if no libtraceevent support" has been added to the 6.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    perf tests task_analyzer: Skip tests if no libtraceevent support

to the 6.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     perf-tests-task_analyzer-skip-tests-if-no-libtraceev.patch
and it can be found in the queue-6.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit bfc0d55f714d91f78349b120dd77f113a15487fe
Author: Aditya Gupta <adityag@xxxxxxxxxxxxx>
Date:   Tue Jun 13 22:11:45 2023 +0530

    perf tests task_analyzer: Skip tests if no libtraceevent support
    
    [ Upstream commit c3ac3b0779770acd3ad7eecb5099ab4419ef2e2e ]
    
    Test "perf script task-analyzer tests" fails in environment with missing
    libtraceevent support, as perf record fails to create the perf.data
    file, which further tests depend on.
    
    Instead, when perf is not compiled with libtraceevent support, skip
    those tests instead of failing them, by checking the output of `perf
    record --dry-run` to see if it prints the error "libtraceevent is
    necessary for tracepoint support"
    
    For the following output, perf compiled with: `make NO_LIBTRACEEVENT=1`
    
    Before the patch:
    
    108: perf script task-analyzer tests                                 :
    test child forked, pid 24105
    failed to open perf.data: No such file or directory  (try 'perf record' first)
    FAIL: "invokation of perf script report task-analyzer command failed" Error message: ""
    FAIL: "test_basic" Error message: "Failed to find required string:'Comm'."
    failed to open perf.data: No such file or directory  (try 'perf record' first)
    FAIL: "invokation of perf script report task-analyzer --ns --rename-comms-by-tids 0:random command failed" Error message: ""
    FAIL: "test_ns_rename" Error message: "Failed to find required string:'Comm'."
    failed to open perf.data: No such file or directory  (try 'perf record' first)
    <...>
    perf script task-analyzer tests: FAILED!
    
    With this patch, the script instead returns 2 signifying SKIP, and after
    the patch:
    
    108: perf script task-analyzer tests                                 :
    test child forked, pid 26010
    libtraceevent is necessary for tracepoint support
    WARN: Skipping tests. No libtraceevent support
    test child finished with -2
    perf script task-analyzer tests: Skip
    
    Fixes: e8478b84d6ba9ccf ("perf test: Add new task-analyzer tests")
    Signed-off-by: Aditya Gupta <adityag@xxxxxxxxxxxxx>
    Cc: Disha Goel <disgoel@xxxxxxxxxxxxxxxxxx>
    Cc: Ian Rogers <irogers@xxxxxxxxxx>
    Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
    Cc: John Garry <john.g.garry@xxxxxxxxxx>
    Cc: Madhavan Srinivasan <maddy@xxxxxxxxxxxxx>
    Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
    Cc: Petar Gligoric <petar.gligoric@xxxxxxxxxxxxxxxxx>
    Cc: Ravi Bangoria <ravi.bangoria@xxxxxxx>
    Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
    Link: https://lore.kernel.org/r/20230613164145.50488-18-atrajeev@xxxxxxxxxxxxxxxxxx
    Signed-off-by: Athira Rajeev <atrajeev@xxxxxxxxxxxxxxxxxx>
    Signed-off-by: Kajol Jain <kjain@xxxxxxxxxxxxx>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/perf/tests/shell/test_task_analyzer.sh b/tools/perf/tests/shell/test_task_analyzer.sh
index 6b3343234a6b2..1b7f3c1ec218b 100755
--- a/tools/perf/tests/shell/test_task_analyzer.sh
+++ b/tools/perf/tests/shell/test_task_analyzer.sh
@@ -44,9 +44,20 @@ find_str_or_fail() {
 	fi
 }
 
+# check if perf is compiled with libtraceevent support
+skip_no_probe_record_support() {
+	perf record -e "sched:sched_switch" -a -- sleep 1 2>&1 | grep "libtraceevent is necessary for tracepoint support" && return 2
+	return 0
+}
+
 prepare_perf_data() {
 	# 1s should be sufficient to catch at least some switches
 	perf record -e sched:sched_switch -a -- sleep 1 > /dev/null 2>&1
+	# check if perf data file got created in above step.
+	if [ ! -e "perf.data" ]; then
+		printf "FAIL: perf record failed to create \"perf.data\" \n"
+		return 1
+	fi
 }
 
 # check standard inkvokation with no arguments
@@ -134,6 +145,13 @@ test_csvsummary_extended() {
 	find_str_or_fail "Out-Out;" csvsummary ${FUNCNAME[0]}
 }
 
+skip_no_probe_record_support
+err=$?
+if [ $err -ne 0 ]; then
+	echo "WARN: Skipping tests. No libtraceevent support"
+	cleanup
+	exit $err
+fi
 prepare_perf_data
 test_basic
 test_ns_rename



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux