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

Reply via email to