On Tue, Sep 22, 2026 at 11:01:10AM +0200, Ilya Maximets wrote:
> On 9/22/26 1:20 AM, Johannes Berg wrote:
> > On Tue, 2026-09-22 at 00:36 +0200, Johannes Berg wrote:
> >>
> >> Indeed. Something like this (untested right now, didn't manage to spin
> >> up a test yet):
> >>
> >> diff --git a/tools/testing/selftests/net/openvswitch/openvswitch.sh 
> >> b/tools/testing/selftests/net/openvswitch/openvswitch.sh
> >> index a31f7fb6882d..9b8edfcd2d1a 100755
> >> --- a/tools/testing/selftests/net/openvswitch/openvswitch.sh
> >> +++ b/tools/testing/selftests/net/openvswitch/openvswitch.sh
> >> @@ -234,7 +234,7 @@ ovs_drop_reason_count()
> >>    local reason=$1
> >>
> >>    local perf_output=`perf script -i ${ovs_dir}/perf.data -F 
> >> trace:event,trace`
> >> -  local pattern="skb:kfree_skb:.*reason: $reason"
> >> +  local pattern="skb:kfree_skb:.*reason: $reason$"
> >>
> >>    return `echo "$perf_output" | grep "$pattern" | wc -l`
> >>  }
> >> @@ -790,15 +790,6 @@ test_psample() {
> >>  # - drop packets and verify the right drop reason is reported
> >>  test_drop_reason() {
> >>    which perf >/dev/null 2>&1 || return $ksft_skip
> >> -  which pahole >/dev/null 2>&1 || return $ksft_skip
> >> -
> >> -  ovs_drop_subsys=$(pahole -C skb_drop_reason_subsys |
> >> -                        awk '/OPENVSWITCH/ { print $3; }' |
> >> -                        tr -d ,)
> >> -  if [ -z "$ovs_drop_subsys" ]; then
> >> -          info "failed to get OVS drop subsys ID"
> >> -          return $ksft_skip
> >> -  fi
> >>
> >>    sbx_add "test_drop_reason" || return $?
> >>
> >> @@ -842,7 +833,7 @@ test_drop_reason() {
> >>            
> >> "in_port(2),eth(),eth_type(0x0800),ipv4(src=172.31.110.20,proto=1),icmp()" 
> >> 'drop'
> >>
> >>    ovs_drop_record_and_run "test_drop_reason" ip netns exec client ping -c 
> >> 2 172.31.110.20
> >> -  ovs_drop_reason_count 0x${ovs_drop_subsys}0001 # OVS_DROP_FLOW_ACTION
> >> +  ovs_drop_reason_count OVS_DROP_LAST_ACTION
> >>    if [[ "$?" -ne "2" ]]; then
> >>            info "Did not detect expected drops: $?"
> >>            return 1
> >> @@ -859,7 +850,7 @@ test_drop_reason() {
> >>
> >>    ovs_drop_record_and_run \
> >>              "test_drop_reason" ip netns exec client nc -i 1 -zuv 
> >> 172.31.110.20 6000
> >> -  ovs_drop_reason_count 0x${ovs_drop_subsys}0004 # 
> >> OVS_DROP_EXPLICIT_ACTION_ERROR
> >> +  ovs_drop_reason_count OVS_DROP_EXPLICIT_WITH_ERROR
> >>    if [[ "$?" -ne "1" ]]; then
> >>            info "Did not detect expected explicit error drops: $?"
> >>            return 1
> >> @@ -867,7 +858,7 @@ test_drop_reason() {
> >>
> >>    ovs_drop_record_and_run \
> >>              "test_drop_reason" ip netns exec client nc -i 1 -zuv 
> >> 172.31.110.20 7000
> >> -  ovs_drop_reason_count 0x${ovs_drop_subsys}0003 # 
> >> OVS_DROP_EXPLICIT_ACTION
> >> +  ovs_drop_reason_count OVS_DROP_EXPLICIT
> >>    if [[ "$?" -ne "1" ]]; then
> >>            info "Did not detect expected explicit drops: $?"
> >>            return 1
> >>
> >
> > No longer untested, that works.
>
> Looks nicer than parsing obscure numbers indeed!

+1, way prettier indeed.

>
> Matthieu mentioned we'll need CONFIG_TRACEPOINTS in the selftest config
> shard: tools/testing/selftests/net/openvswitch/config
>
> Is that a new dependency or was it always there we just missed adding it
> to the config before?  (it's included in the common net config, so that
> is probably the reason why CI doesn't fail)
>
> Best regards, Ilya Maximets.
>


Reply via email to