Commit 51a8f16e authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

test/vhost: Fix parse_fio_results() for a single client



Signed-off-by: default avatarMichal Berger <michal.berger@intel.com>
Change-Id: I5aa53d0d06564030a3dbae8a8aa5c6179e972980
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13713


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
parent c1cb6b0d
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -1164,6 +1164,7 @@ function parse_fio_results() {
	local client_stats iops bw
	local read_avg_lat read_min_lat read_max_lat
	local write_avg_lat write_min_lat write_min_lat
	local clients

	declare -A results
	results["iops"]=0
@@ -1176,16 +1177,23 @@ function parse_fio_results() {
	# matching files. This is in case we ran fio test multiple times.
	log_files=("$fio_log_dir/$fio_log_filename"*)
	for log_file in "${log_files[@]}"; do
		rwmode=$(jq -r '.["client_stats"][0]["job options"]["rw"]' "$log_file")
		# Save entire array to avoid opening $log_file multiple times
		clients=$(jq -r '.client_stats' "$log_file")
		[[ -n $clients ]]
		rwmode=$(jq -r '.[0]["job options"]["rw"]' <<< "$clients")
		mixread=1
		mixwrite=1
		if [[ $rwmode = *"rw"* ]]; then
			mixread=$(jq -r '.["client_stats"][0]["job options"]["rwmixread"]' "$log_file")
			mixread=$(jq -r '.[0]["job options"]["rwmixread"]' <<< "$clients")
			mixread=$(bc -l <<< "scale=3; $mixread/100")
			mixwrite=$(bc -l <<< "scale=3; 1-$mixread")
		fi

		client_stats=$(jq -r '.["client_stats"][] | select(.jobname == "All clients")' "$log_file")
		client_stats=$(jq -r '.[] | select(.jobname == "All clients")' <<< "$clients")
		if [[ -z $client_stats ]]; then
			# Potentially single client (single VM)
			client_stats=$(jq -r '.[]' <<< "$clients")
		fi

		# Check latency unit and later normalize to microseconds
		lat_key="lat_us"