diff mbox series

[1/1] rt-tests: determine_maximum_mpps.sh: Get frequency from timebase-frequency if cpuinfo fails

Message ID 20241111014953.11604-1-ende.tan@starfivetech.com
State New
Headers show
Series [1/1] rt-tests: determine_maximum_mpps.sh: Get frequency from timebase-frequency if cpuinfo fails | expand

Commit Message

En De Tan Nov. 11, 2024, 1:49 a.m. UTC
From: Tan En De <ende.tan@starfivetech.com>

If cpu MHz is not listed in /proc/cpuinfo (as in RISC-V Linux), get the
frequency from /sys/firmware/devicetree/base/cpus/timebase-frequency.

Signed-off-by: Tan En De <ende.tan@starfivetech.com>
---
 src/queuelat/determine_maximum_mpps.sh | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Comments

Marcelo Tosatti Nov. 19, 2024, 7:49 p.m. UTC | #1
On Mon, Nov 11, 2024 at 09:49:53AM +0800, ende.tan@starfivetech.com wrote:
> From: Tan En De <ende.tan@starfivetech.com>
> 
> If cpu MHz is not listed in /proc/cpuinfo (as in RISC-V Linux), get the
> frequency from /sys/firmware/devicetree/base/cpus/timebase-frequency.
> 
> Signed-off-by: Tan En De <ende.tan@starfivetech.com>
> ---
>  src/queuelat/determine_maximum_mpps.sh | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/src/queuelat/determine_maximum_mpps.sh b/src/queuelat/determine_maximum_mpps.sh
> index 733b6b2..adfd809 100755
> --- a/src/queuelat/determine_maximum_mpps.sh
> +++ b/src/queuelat/determine_maximum_mpps.sh
> @@ -42,7 +42,15 @@ usage()
>  
>  get_cpuinfo_mhz()
>  {
> -	grep "cpu MHz" /proc/cpuinfo | cut -f 3 -d " " | sort -rn | head -n1
> +	# 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))
> +	fi
> +
> +	echo "$FREQ_MHZ"
>  }
>  
>  # Check that the scheduling policy hasn't already been set
> -- 
> 2.34.1
> 
> 

Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
diff mbox series

Patch

diff --git a/src/queuelat/determine_maximum_mpps.sh b/src/queuelat/determine_maximum_mpps.sh
index 733b6b2..adfd809 100755
--- a/src/queuelat/determine_maximum_mpps.sh
+++ b/src/queuelat/determine_maximum_mpps.sh
@@ -42,7 +42,15 @@  usage()
 
 get_cpuinfo_mhz()
 {
-	grep "cpu MHz" /proc/cpuinfo | cut -f 3 -d " " | sort -rn | head -n1
+	# 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))
+	fi
+
+	echo "$FREQ_MHZ"
 }
 
 # Check that the scheduling policy hasn't already been set