From 61546adbbbc3fb892c1ef6597a6bb0f6a198cc68 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Tue, 17 Mar 2026 13:48:09 -0400 Subject: [PATCH 01/15] Update how we get test tools and make use of $TOOLS_BIN --- iozone/iozone_run.sh | 66 +++++++++++++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 19 deletions(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index f6f405a..f74cf4a 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -58,7 +58,7 @@ iozone_version="v1.0" # Gather hardware information -${curdir}/test_tools/gather_data ${curdir} +${TOOLS_BIN}/gather_data ${curdir} if [ ! -f "/tmp/${test_name}.out" ]; then command="${0} $@" @@ -168,6 +168,9 @@ modes2run=0; args_fs_types="" tools_git=https://github.com/redhat-performance/test_tools-wrappers +TOOLS_BIN="$HOME/test_tools" +export TOOLS_BIN + # # Config info # @@ -258,7 +261,7 @@ usage() echo " --devices_to_use /dev/nvme3n1,/dev/nvme2n1 --filesystems xfs --file_count_list 1,2" echo " --test_prefix io_test_all --max_file_size 64" echo " --test_type 0,1,2,3,4,5,6,7,8,9,10,11,12" - source test_tools/general_setup --usage + source ${TOOLS_BIN}/general_setup --usage } # @@ -267,14 +270,6 @@ usage() report_usage=0 found=0 for arg in "$@"; do - if [ $found -eq 1 ]; then - tools_git=$arg - break; - fi - if [[ $arg == "--tools_git" ]]; then - found=1 - fi - # # We do the usage check here, as we do not want to be calling # the common parsers then checking for usage here. Doing so will @@ -287,14 +282,47 @@ done # # Check to see if the test tools directory exists. If it does, we do not need to -# clone the repo. +# clone the repo. +# +# Note: this is the "standard way" as of March 2026 # -if [ ! -d "test_tools" ]; then - git clone $tools_git test_tools - if [ $? -ne 0 ]; then - exit_out "pulling git $tools_git failed." 1 +attempt_tools_wget() +{ + if [[ ! -d "$TOOLS_BIN" ]]; then + wget ${tools_git}/archive/refs/heads/main.zip + if [[ $? -eq 0 ]]; then + unzip -q main.zip + mv test_tools-wrappers-main ${TOOLS_BIN} + rm main.zip + fi fi -fi +} +attempt_tools_curl() +{ + if [[ ! -d "$TOOLS_BIN" ]]; then + curl -L -O ${tools_git}/archive/refs/heads/main.zip + if [[ $? -eq 0 ]]; then + unzip -q main.zip + mv test_tools-wrappers-main ${TOOLS_BIN} + rm main.zip + fi + fi +} +attempt_tools_git() +{ + if [[ ! -d "$TOOLS_BIN" ]]; then + git clone $tools_git "$TOOLS_BIN" + if [ $? -ne 0 ]; then + exit_out "Error: pulling git $tools_git failed." 101 + fi + fi +} + +attempt_tools_wget +attempt_tools_curl +attempt_tools_git + +# End of test tools installation if [ $report_usage -eq 1 ]; then usage $0 @@ -312,7 +340,7 @@ fi # to_tuned_setting: tuned setting # -source test_tools/general_setup "$@" +source ${TOOLS_BIN}/general_setup "$@" # Install needed packages based on what's listed in the wrapper's json file ${TOOLS_BIN}/package_tool --no_packages $to_no_pkg_install --wrapper_config ${run_dir}/iozone-wrapper.json @@ -1813,7 +1841,7 @@ else fi cp ${curdir}/meta_data.yml $results_dir -${curdir}/test_tools/move_data $curdir ${results_dir} +${TOOLS_BIN}/move_data $curdir ${results_dir} if [[ $auto -eq 0 ]]; then reduce_non_auto_data $iozone_output_file > $out_dir/iozone_summary cp -R ${results_dir} $out_dir @@ -1840,7 +1868,7 @@ mv /tmp/results_iozone.csv ${results_dir} pushd ${results_dir} > /dev/null tar cf /tmp/results_iozone_${to_tuned_setting}.tar * popd > /dev/null -${curdir}/test_tools/save_results --curdir $curdir --home_root $to_home_root --tar_file "/tmp/results_iozone_${to_tuned_setting}.tar" --test_name ${test_name} --tuned_setting=$to_tuned_setting --version None --user $to_user +${TOOLS_BIN}/save_results --curdir $curdir --home_root $to_home_root --tar_file "/tmp/results_iozone_${to_tuned_setting}.tar" --test_name ${test_name} --tuned_setting=$to_tuned_setting --version None --user $to_user popd >& /dev/null # Shutdown PCP and clean up after ourselves From aec992d15e4b84033d4a15c6cd9aa53cb63bcb35 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Tue, 17 Mar 2026 13:58:45 -0400 Subject: [PATCH 02/15] Now running package_tool without %TOOLS_BIN and using return code --- iozone/iozone_run.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index f74cf4a..55e59a6 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -343,9 +343,10 @@ fi source ${TOOLS_BIN}/general_setup "$@" # Install needed packages based on what's listed in the wrapper's json file -${TOOLS_BIN}/package_tool --no_packages $to_no_pkg_install --wrapper_config ${run_dir}/iozone-wrapper.json -if [[ $? -ne 0 ]]; then - exit_out "package_tool reported failure installing dependencies." 1 +package_tool --no_packages $to_no_pkg_install --wrapper_config ${run_dir}/iozone-wrapper.json +rtc=$? +if [[ $rtc -ne 0 ]]; then + exit_out "package_tool reported failure installing dependencies." $rtc fi # From ee954e953ca88ab16792d52b7f96b190cbad243d Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Mon, 23 Mar 2026 13:32:01 -0400 Subject: [PATCH 03/15] Add validation files --- iozone/results_iozone_auto_schema.py | 34 +++++++++++++++++++++++ iozone/results_iozone_tput_schema.py | 40 ++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 iozone/results_iozone_auto_schema.py create mode 100644 iozone/results_iozone_tput_schema.py diff --git a/iozone/results_iozone_auto_schema.py b/iozone/results_iozone_auto_schema.py new file mode 100644 index 0000000..891014e --- /dev/null +++ b/iozone/results_iozone_auto_schema.py @@ -0,0 +1,34 @@ +import pydantic +import datetime +from enum import Enum +class Filesys(Enum): + xfs = "xfs" + ext4 = "ext4" + ext3 = "ext3" + +class Testmode(Enum): + directio = "directio" + incache = "incache" + incache+fsync = "incache+fsync" + incache+mmap = "incache+mmap" + outcache = "outcache" + +class Iozone_Results (pydantic.BaseModel): + filesys: Filesys + testmode: Testmode + all_ios: int = pydantic.Field(gt=0) + initwrite: int = pydantic.Field(gt=0) + rewrite: int = pydantic.Field(gt=0) + read: int = pydantic.Field(gt=0) + reread: int = pydantic.Field(gt=0) + rndread: int = pydantic.Field(gt=0) + rndwrite: int = pydantic.Field(gt=0) + backread: int = pydantic.Field(gt=0) + recrewrite: int = pydantic.Field(gt=0) + strideread: int = pydantic.Field(gt=0) + fwrite: int = pydantic.Field(gt=0) + frewrite: int = pydantic.Field(gt=0) + fread: int = pydantic.Field(gt=0) + freread: int = pydantic.Field(gt=0) + Start_Date: datetime.datetime + End_Date: datetime.datetime diff --git a/iozone/results_iozone_tput_schema.py b/iozone/results_iozone_tput_schema.py new file mode 100644 index 0000000..13a056f --- /dev/null +++ b/iozone/results_iozone_tput_schema.py @@ -0,0 +1,40 @@ +import pydantic +import datetime +from enum import Enum +class Filesys(Enum): + xfs = "xfs" + ext4 = "ext4" + ext3 = "ext3" + +class Testmode(Enum): + directio = "directio" + incache = "incache" + incache+fsync = "incache+fsync" + incache+mmap = "incache+mmap" + outcache = "outcache" + +class Operation(Enum): + Initialwrite = "Initialwrite" + Rewrite = "Rewrite" + Read = "Read" + Reread = "Reread" + ReverseRead = "ReverseRead" + Strideread = "Strideread" + Randomread = "Randomread" + Mixedworkload = "Mixedworkload" + Randomwrite = "Randomwrite" + Pwrite = "Pwrite" + Pread = "Pread" + Fwrite = "Fwrite" + Fread = "Fread" + +class Iozone_Results (pydantic.BaseModel): + filesys: Filesys + testmode: Testmode + op: Operation + 1proc: float = pydantic.Field(gt=0, allow_inf_nan=False) + 2proc: float = pydantic.Field(gt=0, allow_inf_nan=False) + 4proc: float = pydantic.Field(gt=0, allow_inf_nan=False) + Start_Date: datetime.datetime + End_Date: datetime.datetime + From 4be3e4eb1b47779ebc986b91d96c3bb4c49f592c Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Tue, 24 Mar 2026 13:10:54 -0400 Subject: [PATCH 04/15] Stage for addition of validation but do not activate --- iozone/iozone_run.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 55e59a6..f74b2a0 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1409,8 +1409,8 @@ reduce_auto_data() fi # Add the front matter and column headers - $TOOLS_BIN/test_header_info --front_matter --results_file /tmp/results_iozone.csv --host $to_configuration --sys_type $to_sys_type --tuned $to_tuned_setting --results_version $results_version --test_name $test_name --field_header "fs,mode,all_ios,initwrite,rewrite,read,reread,rndread,rndwrite,backread,recrewrite,strideread,fwrite,frewrite,fread,freread" - + $TOOLS_BIN/test_header_info --front_matter --results_file /tmp/results_iozone.csv --host $to_configuration --sys_type $to_sys_type --tuned $to_tuned_setting --results_version $results_version --test_name $test_name + echo ${results_header_str} >> /tmp/results_iozone.csv pushd ${results_dir}/${resdir} >& /dev/null for resfs in $filesystems do @@ -1447,9 +1447,8 @@ reduce_non_auto_data() # The averaging script wasn't meant for throughput mode resdir="Run_1" # Add the column headers - procheaders=`echo ${file_count_list} | sed 's/ /proc,/g; s/$/proc/'` - $TOOLS_BIN/test_header_info --front_matter --results_file /tmp/results_iozone.csv --host $to_configuration --sys_type $to_sys_type --tuned $to_tuned_setting --results_version $results_version --test_name $test_name --field_header "filesys,mode,op,${procheaders}" -: + $TOOLS_BIN/test_header_info --front_matter --results_file /tmp/results_iozone.csv --host $to_configuration --sys_type $to_sys_type --tuned $to_tuned_setting --results_version $results_version --test_name $test_name + echo ${results_header_str} >> /tmp/results_iozone.csv pushd ${results_dir}/${resdir} >& /dev/null for resfs in $filesystems do @@ -1743,6 +1742,17 @@ if [[ $results_dir == "" ]]; then fi fi +# By now we know which mode's header string and schema file to use +if [[ ${auto} -eq 1 ]]; then + results_header_str="fs,mode,all_ios,initwrite,rewrite,read,reread,rndread,rndwrite,backread,recrewrite,strideread,fwrite,frewrite,fread,freread,Start_Date,End_Date" + results_schema_file=results_iozone_auto_schema.py +else + procheaders=`echo ${file_count_list} | sed 's/ /proc,/g; s/$/proc/'` + results_header_str="filesys,mode,op,${procheaders},Start_Date,End_Date" + results_schema_file=results_iozone_tput_schema.py +fi + + # Make a PCP results dir if necessary if [[ $to_use_pcp -eq 1 ]]; then pcpdir=${results_dir}/pcp_`date "+%Y.%m.%d-%H.%M.%S"` From 630feec67b38d3d1d4571bc0507fe55f88be0cca Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Wed, 25 Mar 2026 13:10:13 -0400 Subject: [PATCH 05/15] Adding the validation code --- iozone/iozone_run.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index f74b2a0..b536e1e 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1868,6 +1868,23 @@ if [[ $to_use_pcp -eq 1 ]]; then stop_pcp fi +# Data reduction is done, now run the validation sequence +# +tmp_file=$(mktemp /tmp/iozone_results.XXXXX) +echo $header_txt > $tmp_file +grep -v "^#" /tmp/results_fio.csv | grep -v "^op" >> $tmp_file +${TOOLS_BIN}/csv_to_json $to_json_flags --csv_file $tmp_file --output_file results_iozone.json +rtc=$? +if [[ $rtc -ne 0 ]]; then + exit out "Error: csv_to_json failed" $rtc +fi +${TOOLS_BIN}/verify_results $to_verify_flags --schema_file $script_dir/${results_schema_file} --class_name Iozone_Results --file results_iozone.json + +rtc=$? +if [[ $rtc -ne 0 ]]; then + exit_out "Error: IOzone data verification failed" $rtc +fi + # Archive results into single tarball # pushd /tmp >& /dev/null From 074b867684873ffcc4118f7873d901be785f5319 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Thu, 26 Mar 2026 09:12:13 -0400 Subject: [PATCH 06/15] Replace return codes with new style --- iozone/iozone_run.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index b536e1e..019463b 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -346,7 +346,7 @@ source ${TOOLS_BIN}/general_setup "$@" package_tool --no_packages $to_no_pkg_install --wrapper_config ${run_dir}/iozone-wrapper.json rtc=$? if [[ $rtc -ne 0 ]]; then - exit_out "package_tool reported failure installing dependencies." $rtc + exit_out "package_tool reported failure installing dependencies." $E_GENERAL fi # @@ -1876,13 +1876,13 @@ grep -v "^#" /tmp/results_fio.csv | grep -v "^op" >> $tmp_file ${TOOLS_BIN}/csv_to_json $to_json_flags --csv_file $tmp_file --output_file results_iozone.json rtc=$? if [[ $rtc -ne 0 ]]; then - exit out "Error: csv_to_json failed" $rtc + exit out "Error: csv_to_json failed" $E_GENERAL fi ${TOOLS_BIN}/verify_results $to_verify_flags --schema_file $script_dir/${results_schema_file} --class_name Iozone_Results --file results_iozone.json rtc=$? if [[ $rtc -ne 0 ]]; then - exit_out "Error: IOzone data verification failed" $rtc + exit_out "Error: IOzone data verification failed" $E_GENERAL fi # Archive results into single tarball From 14c7e1c004a8f7e32639a3f42672288fa80f9611 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Fri, 27 Mar 2026 10:01:52 -0400 Subject: [PATCH 07/15] Fixing the validation bits based on testing --- iozone/iozone_run.sh | 14 ++++++++------ iozone/results_iozone_auto_schema.py | 16 ++++++++-------- iozone/results_iozone_tput_schema.py | 14 +++++++------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 019463b..592694d 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1410,7 +1410,7 @@ reduce_auto_data() # Add the front matter and column headers $TOOLS_BIN/test_header_info --front_matter --results_file /tmp/results_iozone.csv --host $to_configuration --sys_type $to_sys_type --tuned $to_tuned_setting --results_version $results_version --test_name $test_name - echo ${results_header_str} >> /tmp/results_iozone.csv + echo ${results_header_str} >> /tmp/results_iozone.csv pushd ${results_dir}/${resdir} >& /dev/null for resfs in $filesystems do @@ -1747,8 +1747,8 @@ if [[ ${auto} -eq 1 ]]; then results_header_str="fs,mode,all_ios,initwrite,rewrite,read,reread,rndread,rndwrite,backread,recrewrite,strideread,fwrite,frewrite,fread,freread,Start_Date,End_Date" results_schema_file=results_iozone_auto_schema.py else - procheaders=`echo ${file_count_list} | sed 's/ /proc,/g; s/$/proc/'` - results_header_str="filesys,mode,op,${procheaders},Start_Date,End_Date" + procheaders=`echo ${file_count_list} | sed 's/^/proc/; s/ /,proc/g'` + results_header_str="fs,mode,op,${procheaders},Start_Date,End_Date" results_schema_file=results_iozone_tput_schema.py fi @@ -1871,14 +1871,16 @@ fi # Data reduction is done, now run the validation sequence # tmp_file=$(mktemp /tmp/iozone_results.XXXXX) -echo $header_txt > $tmp_file -grep -v "^#" /tmp/results_fio.csv | grep -v "^op" >> $tmp_file +echo $results_header_str > $tmp_file +grep -v "^#" /tmp/results_iozone.csv | grep -v "^fs" >> $tmp_file ${TOOLS_BIN}/csv_to_json $to_json_flags --csv_file $tmp_file --output_file results_iozone.json rtc=$? if [[ $rtc -ne 0 ]]; then exit out "Error: csv_to_json failed" $E_GENERAL fi -${TOOLS_BIN}/verify_results $to_verify_flags --schema_file $script_dir/${results_schema_file} --class_name Iozone_Results --file results_iozone.json +# The conversion to JSON turns NaNs to nulls, put the NaNs back +sed -i 's/null/NaN/g' results_iozone.json +${TOOLS_BIN}/verify_results $to_verify_flags --schema_file $run_dir/${results_schema_file} --class_name Iozone_Results --file results_iozone.json rtc=$? if [[ $rtc -ne 0 ]]; then diff --git a/iozone/results_iozone_auto_schema.py b/iozone/results_iozone_auto_schema.py index 891014e..e7be7b2 100644 --- a/iozone/results_iozone_auto_schema.py +++ b/iozone/results_iozone_auto_schema.py @@ -9,13 +9,13 @@ class Filesys(Enum): class Testmode(Enum): directio = "directio" incache = "incache" - incache+fsync = "incache+fsync" - incache+mmap = "incache+mmap" + incache_fsync = "incache+fsync" + incache_mmap = "incache+mmap" outcache = "outcache" class Iozone_Results (pydantic.BaseModel): - filesys: Filesys - testmode: Testmode + fs: Filesys + mode: Testmode all_ios: int = pydantic.Field(gt=0) initwrite: int = pydantic.Field(gt=0) rewrite: int = pydantic.Field(gt=0) @@ -26,9 +26,9 @@ class Iozone_Results (pydantic.BaseModel): backread: int = pydantic.Field(gt=0) recrewrite: int = pydantic.Field(gt=0) strideread: int = pydantic.Field(gt=0) - fwrite: int = pydantic.Field(gt=0) - frewrite: int = pydantic.Field(gt=0) - fread: int = pydantic.Field(gt=0) - freread: int = pydantic.Field(gt=0) + fwrite: float = pydantic.Field() + frewrite: float = pydantic.Field() + fread: float = pydantic.Field() + freread: float = pydantic.Field() Start_Date: datetime.datetime End_Date: datetime.datetime diff --git a/iozone/results_iozone_tput_schema.py b/iozone/results_iozone_tput_schema.py index 13a056f..c368815 100644 --- a/iozone/results_iozone_tput_schema.py +++ b/iozone/results_iozone_tput_schema.py @@ -9,8 +9,8 @@ class Filesys(Enum): class Testmode(Enum): directio = "directio" incache = "incache" - incache+fsync = "incache+fsync" - incache+mmap = "incache+mmap" + incache_fsync = "incache+fsync" + incache_mmap = "incache+mmap" outcache = "outcache" class Operation(Enum): @@ -29,12 +29,12 @@ class Operation(Enum): Fread = "Fread" class Iozone_Results (pydantic.BaseModel): - filesys: Filesys - testmode: Testmode + fs: Filesys + mode: Testmode op: Operation - 1proc: float = pydantic.Field(gt=0, allow_inf_nan=False) - 2proc: float = pydantic.Field(gt=0, allow_inf_nan=False) - 4proc: float = pydantic.Field(gt=0, allow_inf_nan=False) + proc1: float = pydantic.Field(gt=0, allow_inf_nan=False) + proc2: float = pydantic.Field(gt=0, allow_inf_nan=False) + proc4: float = pydantic.Field(gt=0, allow_inf_nan=False) Start_Date: datetime.datetime End_Date: datetime.datetime From 139efdf20fcccd1402f347f792b6a5db278dc107 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Fri, 27 Mar 2026 10:40:53 -0400 Subject: [PATCH 08/15] Move gather data to after test_tools installation Came across an old oddity during the test tools installation revamp. Relocation to a place which makes more sense --- iozone/iozone_run.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 592694d..30e42b2 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -56,10 +56,6 @@ arguments="$@" test_name="iozone" iozone_version="v1.0" - -# Gather hardware information -${TOOLS_BIN}/gather_data ${curdir} - if [ ! -f "/tmp/${test_name}.out" ]; then command="${0} $@" echo $command @@ -324,6 +320,9 @@ attempt_tools_git # End of test tools installation +# Gather hardware information +${TOOLS_BIN}/gather_data ${curdir} + if [ $report_usage -eq 1 ]; then usage $0 fi From 8cfba672ed1b461357b36277373c3c464fac21ef Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Fri, 27 Mar 2026 10:47:08 -0400 Subject: [PATCH 09/15] clean up whitespace --- iozone/iozone_run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 30e42b2..63b84a8 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -278,7 +278,7 @@ done # # Check to see if the test tools directory exists. If it does, we do not need to -# clone the repo. +# clone the repo. # # Note: this is the "standard way" as of March 2026 # From 77e438f414cbf0b2bb0de544c77a82d697bf6312 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Fri, 27 Mar 2026 11:24:02 -0400 Subject: [PATCH 10/15] Preserve the json file used for validation --- iozone/iozone_run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 63b84a8..6aa90c3 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1894,6 +1894,7 @@ archive_file="iozone-results.tar.gz" make_dir $results_dir echo mv /tmp/results_iozone.csv ${results_dir} mv /tmp/results_iozone.csv ${results_dir} +mv results_iozone.json ${results_dir} pushd ${results_dir} > /dev/null tar cf /tmp/results_iozone_${to_tuned_setting}.tar * popd > /dev/null From f27393d2bc36fac739ce91148e9cce489c1469f0 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Fri, 27 Mar 2026 14:53:26 -0400 Subject: [PATCH 11/15] Change where the json file goess --- iozone/iozone_run.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 6aa90c3..11324ab 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1872,14 +1872,14 @@ fi tmp_file=$(mktemp /tmp/iozone_results.XXXXX) echo $results_header_str > $tmp_file grep -v "^#" /tmp/results_iozone.csv | grep -v "^fs" >> $tmp_file -${TOOLS_BIN}/csv_to_json $to_json_flags --csv_file $tmp_file --output_file results_iozone.json +${TOOLS_BIN}/csv_to_json $to_json_flags --csv_file $tmp_file --output_file /tmp/results_iozone.json rtc=$? if [[ $rtc -ne 0 ]]; then exit out "Error: csv_to_json failed" $E_GENERAL fi # The conversion to JSON turns NaNs to nulls, put the NaNs back sed -i 's/null/NaN/g' results_iozone.json -${TOOLS_BIN}/verify_results $to_verify_flags --schema_file $run_dir/${results_schema_file} --class_name Iozone_Results --file results_iozone.json +${TOOLS_BIN}/verify_results $to_verify_flags --schema_file $run_dir/${results_schema_file} --class_name Iozone_Results --file /tmp/results_iozone.json rtc=$? if [[ $rtc -ne 0 ]]; then @@ -1894,7 +1894,7 @@ archive_file="iozone-results.tar.gz" make_dir $results_dir echo mv /tmp/results_iozone.csv ${results_dir} mv /tmp/results_iozone.csv ${results_dir} -mv results_iozone.json ${results_dir} +mv /tmp/results_iozone.json ${results_dir} pushd ${results_dir} > /dev/null tar cf /tmp/results_iozone_${to_tuned_setting}.tar * popd > /dev/null From b4c6daf002bab8227573acf118976a8fca0f8159 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Wed, 1 Apr 2026 10:01:11 -0400 Subject: [PATCH 12/15] Missed a path change --- iozone/iozone_run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 11324ab..abc92ee 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1878,7 +1878,7 @@ if [[ $rtc -ne 0 ]]; then exit out "Error: csv_to_json failed" $E_GENERAL fi # The conversion to JSON turns NaNs to nulls, put the NaNs back -sed -i 's/null/NaN/g' results_iozone.json +sed -i 's/null/NaN/g' /tmp/results_iozone.json ${TOOLS_BIN}/verify_results $to_verify_flags --schema_file $run_dir/${results_schema_file} --class_name Iozone_Results --file /tmp/results_iozone.json rtc=$? From a28a44d27db983d81788f2b97da9f9706a2f3d55 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Sun, 5 Apr 2026 17:04:04 -0400 Subject: [PATCH 13/15] Fix copy/paste typo --- iozone/iozone_run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index abc92ee..1b5c399 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1875,7 +1875,7 @@ grep -v "^#" /tmp/results_iozone.csv | grep -v "^fs" >> $tmp_file ${TOOLS_BIN}/csv_to_json $to_json_flags --csv_file $tmp_file --output_file /tmp/results_iozone.json rtc=$? if [[ $rtc -ne 0 ]]; then - exit out "Error: csv_to_json failed" $E_GENERAL + exit_out "Error: csv_to_json failed" $E_GENERAL fi # The conversion to JSON turns NaNs to nulls, put the NaNs back sed -i 's/null/NaN/g' /tmp/results_iozone.json From 21c705e701a9c2e898d44290baed4a3b67c60ce3 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Mon, 6 Apr 2026 08:19:41 -0400 Subject: [PATCH 14/15] Fix underscore/plus issue in reduce_non_auto_data --- iozone/iozone_run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index 1b5c399..c345a22 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -1452,7 +1452,7 @@ reduce_non_auto_data() for resfs in $filesystems do cd ${resfs} - for testmode in incache incache_fsync incache_mmap directio outofcache + for testmode in incache incache+fsync incache+mmap directio outofcache do if compgen -G *${testmode}_*.iozone > /dev/null; then # Left to right: From 21b8a735e97e763fb33a0cdf92490e2c734da6d5 Mon Sep 17 00:00:00 2001 From: malucius-rh Date: Mon, 6 Apr 2026 08:29:08 -0400 Subject: [PATCH 15/15] Remove no-longer-necessary option in call to package_tool --- iozone/iozone_run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iozone/iozone_run.sh b/iozone/iozone_run.sh index c345a22..abd8ab0 100755 --- a/iozone/iozone_run.sh +++ b/iozone/iozone_run.sh @@ -342,7 +342,7 @@ fi source ${TOOLS_BIN}/general_setup "$@" # Install needed packages based on what's listed in the wrapper's json file -package_tool --no_packages $to_no_pkg_install --wrapper_config ${run_dir}/iozone-wrapper.json +package_tool --wrapper_config ${run_dir}/iozone-wrapper.json rtc=$? if [[ $rtc -ne 0 ]]; then exit_out "package_tool reported failure installing dependencies." $E_GENERAL