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

Reply via email to