Commit 66ed26e0 authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

perf/pm: Discard < 0 readings coming from RAPL



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


Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 7ee11c56
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -349,6 +349,18 @@ get_cpu_socket_reading() {

		# Convert to Watts - use bc since $interval can be an actual float
		reading=$(calc "(${socket_uj[-1]} - ${socket_uj[-2]}) / 1000000 / $interval")
		if ((reading < 0)); then
			# Somehow this may happen, probably when the counter wraps over. Consider
			# this as a faulty reading and don't include it since it may impact overall
			# avg.
			printf '(%s) CPU %s %s reading: error(%s) (interval: %ss)\n' \
				"$ts" \
				"$socket_name" \
				"$socket_idx" \
				"$reading" \
				"$interval" >&2
			return 0
		fi
		eval "_socket${_socket_idx}_readings+=($reading)"
		power_readings["$socket_name-$socket_idx"]="_socket${_socket_idx}_readings[@]"