Re: KA655 Kernel Compile and Corrupt Object Files

Mouse <[email protected]>
Newsgroups gmane.os.netbsd.ports.vax
Message-ID <[email protected]>
> The "qe0: xmit logic dies, resetting..." is something I've seen on
> lots of VAXen with different controllers, so I doubt that is
> relevant.  I don't know what triggers the message.  Never dove into
> it.

I had a look.  While I'm not sure, I suspect the intent is to kick
DEQNAs whose transmit logic has wedged.  Here's what 1.4T does; 5.2 is
very similar (for example, it calls aprint_error_dev instead of
printf), but it looks basically the same to me.

static  void    qetimeout __P((struct ifnet *));
...
void
qeattach(parent, self, aux)
        struct  device *parent, *self;
        void    *aux;
{
...
        ifp->if_watchdog = qetimeout;
...
}
...
/*
 * Check for dead transmit logic. Not uncommon.
 */
void
qetimeout(ifp)
        struct ifnet *ifp;
{
        struct qe_softc *sc = ifp->if_softc;

        if (sc->sc_inq == 0)
                return;

        printf("%s: xmit logic died, resetting...\n", sc->sc_dev.dv_xname);
        /*
         * Do a reset of interface, to get it going again.
         * Will it work by just restart the transmit logic?
         */
        qeinit(sc);
}

It looks to me as though this simply resets the interface if there's
anything pending when if_slowtimo runs (and decides to call the
interface's if_watchdog).  This is probably why I get the message even
under emulation; nothing keeps if_slowtimo from running when there's a
packet pending.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		[email protected]
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.