Re: [PATCH v6 3/4] net: dropreason: use new __print_sym() in tracing
From: Aaron Conole
Date: Tue Sep 22 2026 - 12:40:29 EST
Ilya Maximets <i.maximets@xxxxxxx> writes:
> 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 !
> 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)
Yes, we missed it the first time around.
> Best regards, Ilya Maximets.