I also was not able to recreate the issues I initially saw w/ high traffic on 7.2 after I re-upgraded. I can't explain it but openbsd 7.2 igc has been solid for about 1.5 weeks now, no patches.
On Tue, Nov 22, 2022 at 11:21 PM Greg Steuck <gne...@openbsd.org> wrote: > > The watched kettle never boiled. No more crashes in over two weeks > (instead of two in the first week). I tried a loop of alternating iperf3 > tcp and udp to no ill effect. I still see the growth in the metrics I > reported, yet the system remained stable. > > I applied the patch below and am still collecting the metrics. I doubt > they are responsible for the original problem. > > Thanks > Greg > > Moritz Buhl <mb...@openbsd.org> writes: > > > Hi Greg, Hi Joe, > > > > dlg@ hinted to me that the ring might overwrite it's own starting > > position with the current code. > > > > Does this help? > > mbuhl > > > > Index: dev/pci/if_igc.c > > =================================================================== > > RCS file: /cvs/src/sys/dev/pci/if_igc.c,v > > retrieving revision 1.9 > > diff -u -p -r1.9 if_igc.c > > --- dev/pci/if_igc.c 2 Jun 2022 07:41:17 -0000 1.9 > > +++ dev/pci/if_igc.c 8 Nov 2022 10:35:39 -0000 > > @@ -978,7 +978,7 @@ igc_start(struct ifqueue *ifq) > > mask = sc->num_tx_desc - 1; > > > > for (;;) { > > - if (free <= IGC_MAX_SCATTER) { > > + if (free <= IGC_MAX_SCATTER + 1) { > > ifq_set_oactive(ifq); > > break; > > } > > @@ -1005,6 +1005,7 @@ igc_start(struct ifqueue *ifq) > > /* Consume the first descriptor */ > > prod++; > > prod &= mask; > > + free--; > > } > > > > for (i = 0; i < map->dm_nsegs; i++) { >