On Sat, Jan 27, 2024 at 08:01:09AM +0100, Hrvoje Popovski wrote:
> On 26.1.2024. 21:56, Marcus Glocker wrote:
> > On Fri, Jan 26, 2024 at 11:41:49AM +0100, Hrvoje Popovski wrote:
> >
> >> I've manage to reproduce TSO em problem on anoter setup, unfortunatly
> >> production.
> >>
> >> Setup is very simple
> >>
> >> em0 - carp <- uplink
> >> em1 - pfsync
> >> ix1 - vlans - carp
> >
> > Would it be possible that you also share an "ifconfig -a hwfeatures" of
> > that box? You can mask the IPs if it's too sensitive.
> >
> > I still try to reproduce the issue here, and for now I can't.
> > Maybe in your full ifconfig output I can see some specifics about your
> > configuration, which makes it more likely to reproduce the issue here.
> >
>
> Hi,
>
> here's ifconfig from second setup where watchdog is triggered much faster.
> Originally in this setup uplink is ix0, I've change that to em0 to see
> would the problem be same as in other setup and it is, and that's good
> because this is pfsync setup for students and I can do whatever I want
> with it :)
Thanks.
But still, I can do whatever I want on my em(4) I210 box, carp(4),
vlan(4), creating a lot of traffic, I can't reproduce the watchdog which
you are seeing :-( I'm not sure if this is something related to your
I350.
Also, I can't understand why the watchdog still triggers when you disable
TSO by setting net.inet.tcp.tso=0.
Just to rule out that you're receiving a MAXMCLBYTES (65536) packet,
while EM_TSO_SIZE (65535) is one byte less, can you please apply this
diff to -current and test it? I doubt it will make a difference, but
I'm running a bit out of ideas here.
Index: if_em.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em.c,v
diff -u -p -u -p -r1.370 if_em.c
--- if_em.c 31 Dec 2023 08:42:33 -0000 1.370
+++ if_em.c 20 Jan 2024 21:16:57 -0000
@@ -2257,7 +2257,7 @@ em_setup_transmit_structures(struct em_s
for (i = 0; i < sc->sc_tx_slots; i++) {
pkt = &que->tx.sc_tx_pkts_ring[i];
- error = bus_dmamap_create(sc->sc_dmat, EM_TSO_SIZE,
+ error = bus_dmamap_create(sc->sc_dmat, MAXMCLBYTES,
EM_MAX_SCATTER / (sc->pcix_82544 ? 2 : 1),
EM_TSO_SEG_SIZE, 0, BUS_DMA_NOWAIT, &pkt->pkt_map);
if (error != 0) {