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++) {