From aa0253b469c212121788f870c9870faf3574b50c Mon Sep 17 00:00:00 2001 From: David Valin Date: Thu, 23 Apr 2026 12:49:10 -0400 Subject: [PATCH 1/4] Convert time values to nanoseconds. That way we do not have to worry about unit change --- pyperf/pyperf_run | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) mode change 100755 => 100644 pyperf/pyperf_run diff --git a/pyperf/pyperf_run b/pyperf/pyperf_run old mode 100755 new mode 100644 index 4b22b64..ed67a10 --- a/pyperf/pyperf_run +++ b/pyperf/pyperf_run @@ -190,7 +190,8 @@ generate_csv_file() start_time=$2 end_time=$3 - $TOOLS_BIN/test_header_info --front_matter --results_file "${1}.csv" --host $to_configuration --sys_type $to_sys_type --tuned $to_tuned_setting --results_version "py${PYTHON_VERSION}_$PYPERF_VERSION" --test_name $test_name_run --field_header "Test,Avg,Unit" + $TOOLS_BIN/test_header_info --front_matter --results_file "${1}.csv" --host $to_configuration --sys_type $to_sys_type --tuned $to_tuned_setting --results_version "py${PYTHON_VERSION}_$PYPERF_VERSION" --test_name $test_name_run --field_header "Test,Avg,Unit" + while IFS= read -r line do @@ -198,18 +199,23 @@ generate_csv_file() test_name=$line continue fi + if [[ $line == *"Try to rerun "* ]]; then + continue + fi if [ -z "$line" ]; then let "reduce=$reduce+1" if [[ $reduce -eq 2 ]]; then if [[ $test_name != *"WARNING:"* ]]; then - results=`echo "${value_sum}/${res_count}" | bc -l` - printf "%s,%.2f,%s,%s,%s\n" $test_name $results $unit $start_time $end_time >> ${1}.csv + results=$(echo "${value_sum}/${res_count}" | bc -l | cut -d'.' -f1 ) + printf "%s,%d,ns,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv if [[ $to_use_pcp -eq 1 ]]; then metric_name="pyperf_${test_name}" - ns_results=$($TOOLS_BIN/convert_val --from_unit $unit --to_unit ns --time_val --value $results | sed -e 's/ns//g') + # + # We are ns already. + # # Cannot use convert_val directly since it does not support floating point output - sec_results=$(echo "$ns_results/1000000000" | bc -l) + sec_results=$(echo "$results/1000000000" | bc -l) result2pcp "$metric_name" "${sec_results}" fi fi @@ -225,19 +231,19 @@ generate_csv_file() fi value=`echo $line | cut -d' ' -f 4` unit=`echo $line | cut -d' ' -f 5` + cnv_val=$($TOOLS_BIN/convert_val --time_val --from_unit $unit --to_unit ns --value $value | sed "s/ns//g") let "res_count=${res_count}+1" - value_sum=`echo "${value}+${value_sum}" | bc -l` + value_sum=`echo "${cnv_val}+${value_sum}" | bc -l` done < "${1}.results" if [[ $test_name != *"WARNING:"* ]]; then - results=`echo "${value_sum}/${res_count}" | bc -l` - printf "%s,%.2f,%s,%s,%s\n" $test_name $results $unit $start_time $end_time >> ${1}.csv + results=$(echo "${value_sum}/${res_count}" | bc -l | cut -d'.' -f1 ) + printf "%s,%d,ns,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv if [[ $to_use_pcp -eq 1 ]]; then metric_name="pyperf_${test_name}" - ns_results=$($TOOLS_BIN/convert_val --from_unit $unit --to_unit ns --time_val --value $results | sed -e 's/ns//g') - # Cannot use convert_val directly since it does not support floating point output - sec_results=$(echo "$ns_results/1000000000" | bc -l) + sec_results=$(echo "$results/1000000000" | bc -l) + result2pcp "$metric_name" "${sec_results}" result2pcp "$metric_name" "${sec_results}" fi fi From 9bc3729b123e266bde5b053ecb1018693d0a1384 Mon Sep 17 00:00:00 2001 From: David Valin Date: Thu, 23 Apr 2026 13:07:03 -0400 Subject: [PATCH 2/4] Remove dup line --- pyperf/pyperf_run | 1 - 1 file changed, 1 deletion(-) diff --git a/pyperf/pyperf_run b/pyperf/pyperf_run index ed67a10..aaca8f4 100644 --- a/pyperf/pyperf_run +++ b/pyperf/pyperf_run @@ -244,7 +244,6 @@ generate_csv_file() metric_name="pyperf_${test_name}" sec_results=$(echo "$results/1000000000" | bc -l) result2pcp "$metric_name" "${sec_results}" - result2pcp "$metric_name" "${sec_results}" fi fi } From 09593e025bb42946c28f50a689eccea79fb400e3 Mon Sep 17 00:00:00 2001 From: David Valin Date: Fri, 24 Apr 2026 05:00:26 -0400 Subject: [PATCH 3/4] Output results in seconds. --- pyperf/pyperf_run | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pyperf/pyperf_run b/pyperf/pyperf_run index aaca8f4..effea43 100644 --- a/pyperf/pyperf_run +++ b/pyperf/pyperf_run @@ -206,16 +206,13 @@ generate_csv_file() let "reduce=$reduce+1" if [[ $reduce -eq 2 ]]; then if [[ $test_name != *"WARNING:"* ]]; then + # Cannot use convert_val directly since it does not support floating point output results=$(echo "${value_sum}/${res_count}" | bc -l | cut -d'.' -f1 ) - printf "%s,%d,ns,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv + sec_results=$(echo "$results/1000000000" | bc -l) + printf "%s,%f,sec,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv if [[ $to_use_pcp -eq 1 ]]; then metric_name="pyperf_${test_name}" - # - # We are ns already. - # - # Cannot use convert_val directly since it does not support floating point output - sec_results=$(echo "$results/1000000000" | bc -l) result2pcp "$metric_name" "${sec_results}" fi fi @@ -238,7 +235,8 @@ generate_csv_file() if [[ $test_name != *"WARNING:"* ]]; then results=$(echo "${value_sum}/${res_count}" | bc -l | cut -d'.' -f1 ) - printf "%s,%d,ns,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv + sec_results=$(echo "$results/1000000000" | bc -l) + printf "%s,%f,sec,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv if [[ $to_use_pcp -eq 1 ]]; then metric_name="pyperf_${test_name}" From b7c0089eee741d8fc1eccc29e42296420abf6095 Mon Sep 17 00:00:00 2001 From: David Valin Date: Fri, 24 Apr 2026 07:15:09 -0400 Subject: [PATCH 4/4] Report seconds --- pyperf/pyperf_run | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyperf/pyperf_run b/pyperf/pyperf_run index effea43..83ede35 100644 --- a/pyperf/pyperf_run +++ b/pyperf/pyperf_run @@ -209,7 +209,7 @@ generate_csv_file() # Cannot use convert_val directly since it does not support floating point output results=$(echo "${value_sum}/${res_count}" | bc -l | cut -d'.' -f1 ) sec_results=$(echo "$results/1000000000" | bc -l) - printf "%s,%f,sec,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv + printf "%s,%f,sec,%s,%s\n" $test_name $sec_results $start_time $end_time >> ${1}.csv if [[ $to_use_pcp -eq 1 ]]; then metric_name="pyperf_${test_name}" @@ -236,7 +236,7 @@ generate_csv_file() if [[ $test_name != *"WARNING:"* ]]; then results=$(echo "${value_sum}/${res_count}" | bc -l | cut -d'.' -f1 ) sec_results=$(echo "$results/1000000000" | bc -l) - printf "%s,%f,sec,%s,%s\n" $test_name $results $start_time $end_time >> ${1}.csv + printf "%s,%f,sec,%s,%s\n" $test_name $sec_results $start_time $end_time >> ${1}.csv if [[ $to_use_pcp -eq 1 ]]; then metric_name="pyperf_${test_name}"