Re: [PATCH v6 3/4] net: dropreason: use new __print_sym() in tracing

From: Adrián Moreno

Date: Tue Sep 22 2026 - 10:47:41 EST


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