mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
tracing tools updates for v6.16:
- Set distinctive value for failed tests When running "make check" that performs tests on rtla the failure is checked by examining the output. Instead have the tool return an error status if it exceeds the threadhold. - Define __NR_sched_setattr for LoongArch Define __NR_sched_setattr to allow this to build for LoongArch. - Define _GNU_SOURCE for timerlat_bpf.c Due to modifications of struct sched_attr in utils.h when _GNU_SOURCE is not defined, this can cause errors for timerlat_bpf_init() and breakage in BPF sample collection mode. -----BEGIN PGP SIGNATURE----- iIoEABYKADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCaDeTzBQccm9zdGVkdEBn b29kbWlzLm9yZwAKCRAp5XQQmuv6qokRAP0XJzos+uvQtkGrqiX5SB/rn1s3/tiD nZagARyiV06BAwEA+NNzqFyx/BLUwMnpx/HFTnIMGXbRVWCVAEeL3t77zgk= =dx7t -----END PGP SIGNATURE----- Merge tag 'trace-tools-v6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace Pull tracing tools updates from Steven Rostedt: - Set distinctive value for failed tests When running "make check" that performs tests on rtla the failure is checked by examining the output. Instead have the tool return an error status if it exceeds the threadhold. - Define __NR_sched_setattr for LoongArch Define __NR_sched_setattr to allow this to build for LoongArch. - Define _GNU_SOURCE for timerlat_bpf.c Due to modifications of struct sched_attr in utils.h when _GNU_SOURCE is not defined, this can cause errors for timerlat_bpf_init() and breakage in BPF sample collection mode. * tag 'trace-tools-v6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: rtla: Define _GNU_SOURCE in timerlat_bpf.c rtla: Define __NR_sched_setattr for LoongArch rtla: Set distinctive exit value for failed tests
This commit is contained in:
commit
472c5f736b
|
@ -766,8 +766,8 @@ int osnoise_hist_main(int argc, char *argv[])
|
|||
struct osnoise_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct osnoise_tool *tool = NULL;
|
||||
enum result return_value = ERROR;
|
||||
struct trace_instance *trace;
|
||||
int return_value = 1;
|
||||
int retval;
|
||||
|
||||
params = osnoise_hist_parse_args(argc, argv);
|
||||
|
@ -889,12 +889,13 @@ int osnoise_hist_main(int argc, char *argv[])
|
|||
|
||||
osnoise_print_stats(params, tool);
|
||||
|
||||
return_value = 0;
|
||||
return_value = PASSED;
|
||||
|
||||
if (osnoise_trace_is_off(tool, record)) {
|
||||
printf("rtla osnoise hit stop tracing\n");
|
||||
save_trace_to_file(record ? record->trace.inst : NULL,
|
||||
params->trace_output);
|
||||
return_value = FAILED;
|
||||
}
|
||||
|
||||
out_hist:
|
||||
|
|
|
@ -594,8 +594,8 @@ int osnoise_top_main(int argc, char **argv)
|
|||
struct osnoise_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct osnoise_tool *tool = NULL;
|
||||
enum result return_value = ERROR;
|
||||
struct trace_instance *trace;
|
||||
int return_value = 1;
|
||||
int retval;
|
||||
|
||||
params = osnoise_top_parse_args(argc, argv);
|
||||
|
@ -715,12 +715,13 @@ int osnoise_top_main(int argc, char **argv)
|
|||
|
||||
osnoise_print_stats(params, tool);
|
||||
|
||||
return_value = 0;
|
||||
return_value = PASSED;
|
||||
|
||||
if (osnoise_trace_is_off(tool, record)) {
|
||||
printf("osnoise hit stop tracing\n");
|
||||
save_trace_to_file(record ? record->trace.inst : NULL,
|
||||
params->trace_output);
|
||||
return_value = FAILED;
|
||||
}
|
||||
|
||||
out_top:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#ifdef HAVE_BPF_SKEL
|
||||
#define _GNU_SOURCE
|
||||
#include "timerlat.h"
|
||||
#include "timerlat_bpf.h"
|
||||
#include "timerlat.skel.h"
|
||||
|
|
|
@ -1141,11 +1141,11 @@ int timerlat_hist_main(int argc, char *argv[])
|
|||
struct timerlat_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct timerlat_u_params params_u;
|
||||
enum result return_value = ERROR;
|
||||
struct osnoise_tool *tool = NULL;
|
||||
struct osnoise_tool *aa = NULL;
|
||||
struct trace_instance *trace;
|
||||
int dma_latency_fd = -1;
|
||||
int return_value = 1;
|
||||
pthread_t timerlat_u;
|
||||
int retval;
|
||||
int nr_cpus, i;
|
||||
|
@ -1378,7 +1378,7 @@ int timerlat_hist_main(int argc, char *argv[])
|
|||
|
||||
timerlat_print_stats(params, tool);
|
||||
|
||||
return_value = 0;
|
||||
return_value = PASSED;
|
||||
|
||||
if (osnoise_trace_is_off(tool, record) && !stop_tracing) {
|
||||
printf("rtla timerlat hit stop tracing\n");
|
||||
|
@ -1388,6 +1388,7 @@ int timerlat_hist_main(int argc, char *argv[])
|
|||
|
||||
save_trace_to_file(record ? record->trace.inst : NULL,
|
||||
params->trace_output);
|
||||
return_value = FAILED;
|
||||
}
|
||||
|
||||
out_hist:
|
||||
|
|
|
@ -985,12 +985,12 @@ int timerlat_top_main(int argc, char *argv[])
|
|||
struct timerlat_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct timerlat_u_params params_u;
|
||||
enum result return_value = ERROR;
|
||||
struct osnoise_tool *top = NULL;
|
||||
struct osnoise_tool *aa = NULL;
|
||||
struct trace_instance *trace;
|
||||
int dma_latency_fd = -1;
|
||||
pthread_t timerlat_u;
|
||||
int return_value = 1;
|
||||
char *max_lat;
|
||||
int retval;
|
||||
int nr_cpus, i;
|
||||
|
@ -1197,7 +1197,7 @@ int timerlat_top_main(int argc, char *argv[])
|
|||
|
||||
timerlat_print_stats(params, top);
|
||||
|
||||
return_value = 0;
|
||||
return_value = PASSED;
|
||||
|
||||
if (osnoise_trace_is_off(top, record) && !stop_tracing) {
|
||||
printf("rtla timerlat hit stop tracing\n");
|
||||
|
@ -1207,6 +1207,7 @@ int timerlat_top_main(int argc, char *argv[])
|
|||
|
||||
save_trace_to_file(record ? record->trace.inst : NULL,
|
||||
params->trace_output);
|
||||
return_value = FAILED;
|
||||
} else if (params->aa_only) {
|
||||
/*
|
||||
* If the trace did not stop with --aa-only, at least print the
|
||||
|
|
|
@ -227,6 +227,8 @@ long parse_ns_duration(char *val)
|
|||
# define __NR_sched_setattr 355
|
||||
# elif __s390x__
|
||||
# define __NR_sched_setattr 345
|
||||
# elif __loongarch__
|
||||
# define __NR_sched_setattr 274
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -83,3 +83,9 @@ int auto_house_keeping(cpu_set_t *monitored_cpus);
|
|||
|
||||
#define ns_to_usf(x) (((double)x/1000))
|
||||
#define ns_to_per(total, part) ((part * 100) / (double)total)
|
||||
|
||||
enum result {
|
||||
PASSED = 0, /* same as EXIT_SUCCESS */
|
||||
ERROR = 1, /* same as EXIT_FAILURE, an error in arguments */
|
||||
FAILED = 2, /* test hit the stop tracing condition */
|
||||
};
|
||||
|
|
|
@ -39,6 +39,7 @@ reset_osnoise() {
|
|||
}
|
||||
|
||||
check() {
|
||||
expected_exitcode=${3:-0}
|
||||
# Simple check: run rtla with given arguments and test exit code.
|
||||
# If TEST_COUNT is set, run the test. Otherwise, just count.
|
||||
ctr=$(($ctr + 1))
|
||||
|
@ -49,7 +50,7 @@ check() {
|
|||
# Run rtla; in case of failure, include its output as comment
|
||||
# in the test results.
|
||||
result=$(stdbuf -oL $TIMEOUT "$RTLA" $2 2>&1); exitcode=$?
|
||||
if [ $exitcode -eq 0 ]
|
||||
if [ $exitcode -eq $expected_exitcode ]
|
||||
then
|
||||
echo "ok $ctr - $1"
|
||||
else
|
||||
|
@ -68,12 +69,14 @@ check_with_osnoise_options() {
|
|||
# Save original arguments
|
||||
arg1=$1
|
||||
arg2=$2
|
||||
arg3=$3
|
||||
|
||||
# Apply osnoise options (if not dry run)
|
||||
if [ -n "$TEST_COUNT" ]
|
||||
then
|
||||
[ "$NO_RESET_OSNOISE" == 1 ] || reset_osnoise
|
||||
shift
|
||||
shift
|
||||
while shift
|
||||
do
|
||||
[ "$1" == "" ] && continue
|
||||
|
@ -84,7 +87,7 @@ check_with_osnoise_options() {
|
|||
done
|
||||
fi
|
||||
|
||||
NO_RESET_OSNOISE=1 check "$arg1" "$arg2"
|
||||
NO_RESET_OSNOISE=1 check "$arg1" "$arg2" "$arg3"
|
||||
}
|
||||
|
||||
set_timeout() {
|
||||
|
|
|
@ -10,11 +10,11 @@ check "verify help page" \
|
|||
check "detect noise higher than one microsecond" \
|
||||
"hwnoise -c 0 -T 1 -d 5s -q"
|
||||
check "set the automatic trace mode" \
|
||||
"hwnoise -a 5 -d 30s"
|
||||
"hwnoise -a 5 -d 30s" 2
|
||||
check "set scheduling param to the osnoise tracer threads" \
|
||||
"hwnoise -P F:1 -c 0 -r 900000 -d 1M -q"
|
||||
check "stop the trace if a single sample is higher than 1 us" \
|
||||
"hwnoise -s 1 -T 1 -t -d 30s"
|
||||
"hwnoise -s 1 -T 1 -t -d 30s" 2
|
||||
check "enable a trace event trigger" \
|
||||
"hwnoise -t -e osnoise:irq_noise trigger=\"hist:key=desc,duration:sort=desc,duration:vals=hitcount\" -d 1m"
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@ check "verify help page" \
|
|||
check "verify the --priority/-P param" \
|
||||
"osnoise top -P F:1 -c 0 -r 900000 -d 1M -q"
|
||||
check "verify the --stop/-s param" \
|
||||
"osnoise top -s 30 -T 1 -t"
|
||||
"osnoise top -s 30 -T 1 -t" 2
|
||||
check "verify the --trace param" \
|
||||
"osnoise hist -s 30 -T 1 -t"
|
||||
"osnoise hist -s 30 -T 1 -t" 2
|
||||
check "verify the --entries/-E param" \
|
||||
"osnoise hist -P F:1 -c 0 -r 900000 -d 1M -b 10 -E 25"
|
||||
|
||||
|
@ -20,6 +20,6 @@ check "verify the --entries/-E param" \
|
|||
# and stopping on threshold.
|
||||
# If default period is not set, this will time out.
|
||||
check_with_osnoise_options "apply default period" \
|
||||
"osnoise hist -s 1" period_us=600000000
|
||||
"osnoise hist -s 1" 2 period_us=600000000
|
||||
|
||||
test_end
|
||||
|
|
|
@ -21,21 +21,21 @@ export RTLA_NO_BPF=$option
|
|||
check "verify help page" \
|
||||
"timerlat --help"
|
||||
check "verify -s/--stack" \
|
||||
"timerlat top -s 3 -T 10 -t"
|
||||
"timerlat top -s 3 -T 10 -t" 2
|
||||
check "verify -P/--priority" \
|
||||
"timerlat top -P F:1 -c 0 -d 1M -q"
|
||||
check "test in nanoseconds" \
|
||||
"timerlat top -i 2 -c 0 -n -d 30s"
|
||||
"timerlat top -i 2 -c 0 -n -d 30s" 2
|
||||
check "set the automatic trace mode" \
|
||||
"timerlat top -a 5 --dump-tasks"
|
||||
"timerlat top -a 5 --dump-tasks" 2
|
||||
check "print the auto-analysis if hits the stop tracing condition" \
|
||||
"timerlat top --aa-only 5"
|
||||
"timerlat top --aa-only 5" 2
|
||||
check "disable auto-analysis" \
|
||||
"timerlat top -s 3 -T 10 -t --no-aa"
|
||||
"timerlat top -s 3 -T 10 -t --no-aa" 2
|
||||
check "verify -c/--cpus" \
|
||||
"timerlat hist -c 0 -d 30s"
|
||||
check "hist test in nanoseconds" \
|
||||
"timerlat hist -i 2 -c 0 -n -d 30s"
|
||||
"timerlat hist -i 2 -c 0 -n -d 30s" 2
|
||||
done
|
||||
|
||||
test_end
|
||||
|
|
Loading…
Reference in New Issue
Block a user