Message ID | 20231215132048.43727-3-rogerq@kernel.org (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: ethernet: am65-cpsw: Add mqprio, frame pre-emption & coalescing | expand |
On Fri, Dec 15, 2023 at 03:20:40PM +0200, Roger Quadros wrote: > diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh > index 8f6ca458af9a..763c262a3453 100755 > --- a/tools/testing/selftests/net/forwarding/lib.sh > +++ b/tools/testing/selftests/net/forwarding/lib.sh > @@ -146,6 +146,15 @@ check_ethtool_mm_support() > fi > } > > +check_ethtool_pmac_std_stats_support() > +{ > + local dev=$1; shift > + local grp=$1; shift > + > + [ 0 -ne $(ethtool --json -S $dev --all-groups --src pmac 2>/dev/null \ > + | jq '.[]."$grp" | length') ] This is broken. $grp inside single quotes will search for the plain-text "$grp" string, not for the $grp bash variable. Use ".[].\"$grp\" | length". $ ./ethtool_mm.sh eno0 swp0 eno0 does not report pMAC statistics, falling back to aggregate swp0 does not report pMAC statistics, falling back to aggregate $ ethtool -S swp0 --all-groups --src pmac Standard stats for swp0: eth-phy-SymbolErrorDuringCarrier: 0 eth-mac-FramesTransmittedOK: 90017 eth-mac-FramesReceivedOK: 90033 eth-mac-FrameCheckSequenceErrors: 0 eth-mac-AlignmentErrors: 0 eth-mac-OctetsTransmittedOK: 9181138 eth-mac-OctetsReceivedOK: 9182112 eth-mac-MulticastFramesXmittedOK: 17 eth-mac-BroadcastFramesXmittedOK: 90000 eth-mac-MulticastFramesReceivedOK: 33 eth-mac-BroadcastFramesReceivedOK: 90000 eth-mac-FrameTooLongErrors: 0 eth-ctrl-MACControlFramesReceived: 0 rmon-etherStatsUndersizePkts: 0 rmon-etherStatsOversizePkts: 0 rmon-etherStatsFragments: 0 rmon-etherStatsJabbers: 0 rx-rmon-etherStatsPkts64to64Octets: 33 rx-rmon-etherStatsPkts65to127Octets: 90000 rx-rmon-etherStatsPkts128to255Octets: 0 rx-rmon-etherStatsPkts256to511Octets: 0 rx-rmon-etherStatsPkts512to1023Octets: 0 rx-rmon-etherStatsPkts1024to1526Octets: 0 rx-rmon-etherStatsPkts1527to65535Octets: 0 tx-rmon-etherStatsPkts64to64Octets: 12 tx-rmon-etherStatsPkts65to127Octets: 90005 tx-rmon-etherStatsPkts128to255Octets: 0 tx-rmon-etherStatsPkts256to511Octets: 0 tx-rmon-etherStatsPkts512to1023Octets: 0 tx-rmon-etherStatsPkts1024to1526Octets: 0 tx-rmon-etherStatsPkts1527to65535Octets: 0 > +} > + > check_locked_port_support() > { > if ! bridge -d link show | grep -q " locked"; then > -- > 2.34.1 >
On 15/12/2023 19:27, Vladimir Oltean wrote: > On Fri, Dec 15, 2023 at 03:20:40PM +0200, Roger Quadros wrote: >> diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh >> index 8f6ca458af9a..763c262a3453 100755 >> --- a/tools/testing/selftests/net/forwarding/lib.sh >> +++ b/tools/testing/selftests/net/forwarding/lib.sh >> @@ -146,6 +146,15 @@ check_ethtool_mm_support() >> fi >> } >> >> +check_ethtool_pmac_std_stats_support() >> +{ >> + local dev=$1; shift >> + local grp=$1; shift >> + >> + [ 0 -ne $(ethtool --json -S $dev --all-groups --src pmac 2>/dev/null \ >> + | jq '.[]."$grp" | length') ] > > This is broken. $grp inside single quotes will search for the plain-text > "$grp" string, not for the $grp bash variable. Use ".[].\"$grp\" | length". > Thanks for catching this. Will fix in next spin. > $ ./ethtool_mm.sh eno0 swp0 > eno0 does not report pMAC statistics, falling back to aggregate > swp0 does not report pMAC statistics, falling back to aggregate > $ ethtool -S swp0 --all-groups --src pmac > Standard stats for swp0: > eth-phy-SymbolErrorDuringCarrier: 0 > eth-mac-FramesTransmittedOK: 90017 > eth-mac-FramesReceivedOK: 90033 > eth-mac-FrameCheckSequenceErrors: 0 > eth-mac-AlignmentErrors: 0 > eth-mac-OctetsTransmittedOK: 9181138 > eth-mac-OctetsReceivedOK: 9182112 > eth-mac-MulticastFramesXmittedOK: 17 > eth-mac-BroadcastFramesXmittedOK: 90000 > eth-mac-MulticastFramesReceivedOK: 33 > eth-mac-BroadcastFramesReceivedOK: 90000 > eth-mac-FrameTooLongErrors: 0 > eth-ctrl-MACControlFramesReceived: 0 > rmon-etherStatsUndersizePkts: 0 > rmon-etherStatsOversizePkts: 0 > rmon-etherStatsFragments: 0 > rmon-etherStatsJabbers: 0 > rx-rmon-etherStatsPkts64to64Octets: 33 > rx-rmon-etherStatsPkts65to127Octets: 90000 > rx-rmon-etherStatsPkts128to255Octets: 0 > rx-rmon-etherStatsPkts256to511Octets: 0 > rx-rmon-etherStatsPkts512to1023Octets: 0 > rx-rmon-etherStatsPkts1024to1526Octets: 0 > rx-rmon-etherStatsPkts1527to65535Octets: 0 > tx-rmon-etherStatsPkts64to64Octets: 12 > tx-rmon-etherStatsPkts65to127Octets: 90005 > tx-rmon-etherStatsPkts128to255Octets: 0 > tx-rmon-etherStatsPkts256to511Octets: 0 > tx-rmon-etherStatsPkts512to1023Octets: 0 > tx-rmon-etherStatsPkts1024to1526Octets: 0 > tx-rmon-etherStatsPkts1527to65535Octets: 0 > >> +} >> + >> check_locked_port_support() >> { >> if ! bridge -d link show | grep -q " locked"; then >> -- >> 2.34.1 >>
diff --git a/tools/testing/selftests/net/forwarding/ethtool_mm.sh b/tools/testing/selftests/net/forwarding/ethtool_mm.sh index 6212913f4ad1..50d5bfb17ef1 100755 --- a/tools/testing/selftests/net/forwarding/ethtool_mm.sh +++ b/tools/testing/selftests/net/forwarding/ethtool_mm.sh @@ -25,6 +25,10 @@ traffic_test() local after= local delta= + if [ ${has_pmac_stats[$if]} = false ]; then + src="aggregate" + fi + before=$(ethtool_std_stats_get $if "eth-mac" "FramesTransmittedOK" $src) $MZ $if -q -c $num_pkts -p 64 -b bcast -t ip -R $PREEMPTIBLE_PRIO @@ -317,6 +321,13 @@ for netif in ${NETIFS[@]}; do echo "SKIP: $netif does not support MAC Merge" exit $ksft_skip fi + + if check_ethtool_pmac_std_stats_support $netif eth-mac; then + has_pmac_stats[$netif]=true + else + has_pmac_stats[$netif]=false + echo "$netif does not report pMAC statistics, falling back to aggregate" + fi done trap cleanup EXIT diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh index 8f6ca458af9a..763c262a3453 100755 --- a/tools/testing/selftests/net/forwarding/lib.sh +++ b/tools/testing/selftests/net/forwarding/lib.sh @@ -146,6 +146,15 @@ check_ethtool_mm_support() fi } +check_ethtool_pmac_std_stats_support() +{ + local dev=$1; shift + local grp=$1; shift + + [ 0 -ne $(ethtool --json -S $dev --all-groups --src pmac 2>/dev/null \ + | jq '.[]."$grp" | length') ] +} + check_locked_port_support() { if ! bridge -d link show | grep -q " locked"; then