perf/pm: Discard < 0 readings coming from RAPL
Signed-off-by: Michal Berger <michal.berger@intel.com> Change-Id: I5a4071441b6eed53553624c5ee587b7c91360eb5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16633 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
7ee11c56ce
commit
66ed26e06d
@ -349,6 +349,18 @@ get_cpu_socket_reading() {
|
|||||||
|
|
||||||
# Convert to Watts - use bc since $interval can be an actual float
|
# Convert to Watts - use bc since $interval can be an actual float
|
||||||
reading=$(calc "(${socket_uj[-1]} - ${socket_uj[-2]}) / 1000000 / $interval")
|
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)"
|
eval "_socket${_socket_idx}_readings+=($reading)"
|
||||||
power_readings["$socket_name-$socket_idx"]="_socket${_socket_idx}_readings[@]"
|
power_readings["$socket_name-$socket_idx"]="_socket${_socket_idx}_readings[@]"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user