[1/1] rt-tests: determine_maximum_mpps.sh: Introduce '-F' option to specify CPU frequency

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Tan En De <ende.tan@xxxxxxxxxxxxxxxx>

For platform that doesn't show cpu MHz in /proc/cpuinfo, introduce '-F'
option for user to specify the CPU frequency in MHz.

This corrects previous commit that mistakenly used timer frequency
(timebase-frequency) instead of CPU frequency.

Fixes: fab7d9057887 ("rt-tests: determine_maximum_mpps.sh: Get frequency from timebase-frequency if cpuinfo fails")
Signed-off-by: Tan En De <ende.tan@xxxxxxxxxxxxxxxx>
---
 src/queuelat/determine_maximum_mpps.8  |  3 +++
 src/queuelat/determine_maximum_mpps.sh | 17 +++++++++--------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/queuelat/determine_maximum_mpps.8 b/src/queuelat/determine_maximum_mpps.8
index ba2cc2a..bcd3078 100644
--- a/src/queuelat/determine_maximum_mpps.8
+++ b/src/queuelat/determine_maximum_mpps.8
@@ -56,6 +56,9 @@ default priority = 1. Valid numbers are from 1 to 99
 .TP
 .B \-h
 help
+.TP
+.B \-F cpu_mhz
+CPU frequency in MHz. This is required for platform that does not show cpu MHz in /proc/cpuinfo.
 .LP
 .SH AUTHOR
 determine_maximum_mpps was written by
diff --git a/src/queuelat/determine_maximum_mpps.sh b/src/queuelat/determine_maximum_mpps.sh
index adfd809..6a90ca0 100755
--- a/src/queuelat/determine_maximum_mpps.sh
+++ b/src/queuelat/determine_maximum_mpps.sh
@@ -37,20 +37,20 @@ usage()
 	echo "-h"
 	echo "	help"
 	echo "	print this help message and exit"
+	echo "-F cpu_mhz"
+	echo "	CPU frequency in MHz. This is required for platform that does not show cpu MHz in /proc/cpuinfo"
 	exit
 }
 
 get_cpuinfo_mhz()
 {
-	# Try to determine MHz from /proc/cpuinfo
-	FREQ_MHZ=$(grep "cpu MHz" /proc/cpuinfo | cut -f 3 -d " " | sort -rn | head -n1)
-
-	# Try to determine MHz from /sys/firmware/devicetree/base/cpus/timebase-frequency
-	if [ -z $FREQ_MHZ ]; then
-		FREQ_MHZ=$(($((16#$(hexdump -e '1/1 "%02X"' /sys/firmware/devicetree/base/cpus/timebase-frequency)))/1000000))
+	# If user does not specify -F CPU_MHZ
+	if [ -z $CPU_MHZ ]; then
+		# Try to determine MHz from /proc/cpuinfo
+		CPU_MHZ=$(grep "cpu MHz" /proc/cpuinfo | cut -f 3 -d " " | sort -rn | head -n1)
 	fi
 
-	echo "$FREQ_MHZ"
+	echo "$CPU_MHZ"
 }
 
 # Check that the scheduling policy hasn't already been set
@@ -64,7 +64,7 @@ check_sched()
 }
 
 # Process command line options
-while getopts ":a:frp:m:n:h" opt; do
+while getopts ":a:frp:m:n:hF:" opt; do
 	case ${opt} in
 		a ) CPULIST="${OPTARG}" ;;
 		m ) MAXLAT="${OPTARG}" ;;
@@ -73,6 +73,7 @@ while getopts ":a:frp:m:n:h" opt; do
 		r ) check_sched; SCHED="-r" ;;
 		p ) PRIO="${OPTARG}" ;;
 		h ) usage ;;
+		F ) CPU_MHZ="${OPTARG}" ;;
 		* ) echo "no such option"; usage ;;
 	esac
 done
-- 
2.34.1





[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux