On 2015/09/08 17:28, Carlos Fenollosa wrote:
> 
> > On 07 Sep 2015, at 20:40, Stuart Henderson <[email protected]> wrote:
> > 
> > On 2015/09/07 20:26, Landry Breuil wrote:
> >> I cant help you on the issue itself, but i can confirm you that i've
> >> been seeing the exact same issue with gem0 on my g4 mac mini here, and
> >> since some releases. randomly, gem0 just doesnt receive/send pkts
> >> anymore and needs to be downed/upped.
> > 
> > Interesting - I don't see that on mine.
> > 
> > Out of interest does your switch have flow control enabled? (you will
> > see rxpause and/or txpause in the ifconfig output). If it does, is there
> > any change if you disable it on the switch (if you can do so)?
> > 
> > gem0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> >        lladdr 00:0d:93:63:da:5a
> >        priority: 0
> >        groups: egress
> >        media: Ethernet autoselect (100baseTX full-duplex)
> >        status: active
> 
> Yes, it seems to be the case:
> 
> gem0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         lladdr 00:11:24:87:a7:64
>         priority: 0
>         groups: egress
>         media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause)
>         status: active
>         inet 192.168.1.199 netmask 0xffffff00 broadcast 192.168.1.255
> 
> 
> I have a crappy telco router, I’m actually not sure if I can disable it 
> there. There is a section on QoS, but the option is disabled.
> Could the driver be forced to disable flow control? At least I could try 
> running it for a couple weeks to see if the bug is triggered again.
> 
> 
> Thanks a lot,
> Carlos
> 

Flow control was a complete guess btw and might be unconnected.
This diff ought to disable it but my mac is 1500km away at the moment
so untested!

Landry, does yours show rxpause/txpause on this line?


Index: gem.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/gem.c,v
retrieving revision 1.112
diff -u -p -r1.112 gem.c
--- gem.c       24 Jun 2015 09:40:54 -0000      1.112
+++ gem.c       8 Sep 2015 15:43:51 -0000
@@ -240,7 +240,7 @@ gem_config(struct gem_softc *sc)
 
        gem_mifinit(sc);
 
-       mii_flags = MIIF_DOPAUSE;
+       mii_flags = 0;
 
        /* 
         * Look for an external PHY.
@@ -905,7 +905,7 @@ gem_init_regs(struct gem_softc *sc)
        bus_space_write_4(t, h, GEM_MAC_RX_CODE_VIOL, 0);
 
        /* Set XOFF PAUSE time */
-       bus_space_write_4(t, h, GEM_MAC_SEND_PAUSE_CMD, 0x1bf0);
+       bus_space_write_4(t, h, GEM_MAC_SEND_PAUSE_CMD, 0);
 
        /*
         * Set the internal arbitration to "infinite" bursts of the
@@ -1357,17 +1357,6 @@ gem_mii_statchg(struct device *dev)
                v &= ~GEM_MAC_XIF_GMII_MODE;
        }
        bus_space_write_4(t, mac, GEM_MAC_XIF_CONFIG, v);
-
-       /*
-        * 802.3x flow control
-        */
-       v = bus_space_read_4(t, mac, GEM_MAC_CONTROL_CONFIG);
-       v &= ~(GEM_MAC_CC_RX_PAUSE | GEM_MAC_CC_TX_PAUSE);
-       if ((IFM_OPTIONS(sc->sc_mii.mii_media_active) & IFM_ETH_RXPAUSE) != 0)
-               v |= GEM_MAC_CC_RX_PAUSE;
-       if ((IFM_OPTIONS(sc->sc_mii.mii_media_active) & IFM_ETH_TXPAUSE) != 0)
-               v |= GEM_MAC_CC_TX_PAUSE;
-       bus_space_write_4(t, mac, GEM_MAC_CONTROL_CONFIG, v);
 }
 
 int



Reply via email to