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!

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