On 14.5.2023. 11:24, Alexander Bluhm wrote:
> On Sat, May 13, 2023 at 01:32:07AM +0200, Alexander Bluhm wrote:
>> I have not yet investigated where the dropped counter 83 comes from.
>> If you see that also, please report what you did.
> This is an ENOBUFS error in this chunk.
>         /* network interface hardware will do TSO */
>         if (in_ifcap_cksum(*mp, ifp, ifcap)) {
>                 if (ISSET(ifcap, IFCAP_TSOv4)) {
>                         in_hdr_cksum_out(*mp, ifp);
>                         in_proto_cksum_out(*mp, ifp);
>                 }
>                 if (ISSET(ifcap, IFCAP_TSOv6))
>                         in6_proto_cksum_out(*mp, ifp);
>                 if ((error = ifp->if_output(ifp, *mp, dst, rt))) {
>                         tcpstat_inc(tcps_outbadtso);
>                         goto done;
>                 }
>                 tcpstat_inc(tcps_outhwtso);
>                 goto done;
>         }
> As the error from ifp->if_output() has nothing todo with TSO, I
> remove the counting there.
> Updated diff, please test if you have ix(4) interfaces doing TCP
> output.


I've tested this on openbsd box with 4 iperf3's. 2 for ip4 and 2 for ip6
and with 16 tcp streams per iperf.  When testing over ix(4) there is big
differences in output performance. When testing ix/veb/vport there is
differences in output performance but not that big.

When testing over vport I'm getting "software chopped" which should be

r620-1# netstat -sp tcp | grep TSO
                7921175 output TSO packets software chopped
                3739630121 output TSO packets hardware processed
                915829954 output TSO packets generated
                0 output TSO packets dropped

With previous diff I could easily trigger "TSO packet dropped" but with
this one I couldn't.

Reply via email to