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 |
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 --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