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.
Hi, 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 expected. 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.