The BGE0 test statistics you posted to the FreeBSD list were very
    interesting.  I'm still scratching my head wondering what changed
    between 1.6 and HEAD to create such an improvement in packet rates.

    The change I thought would make a big difference was when we embedded
    the LWKT message header in the mbuf instead of allocating it separately,
    but I looked at the CVS logs and that change actually occured before
    the 1.6 release.

    It ought to be possible to track down the EM lockups...  The interface
    if_ierrors counter is being updated so it has to be coming from one
    of the recorded statistics:

        /* Rx Errors */
        ifp->if_ierrors =
                adapter->dropped_pkts +
                adapter->stats.rxerrc +
                adapter->stats.crcerrs +
                adapter->stats.algnerrc +
                adapter->stats.ruc + adapter->stats.roc +
                adapter->stats.mpc + adapter->stats.cexterr +
                adapter->rx_overruns;

    From the debug output, these lines stick out:

        em0: Missed Packets = 7202325   <<<<<<   adapter->stats.mpc
        em0: XOFF Xmtd = 7202331

    That doesn't look right at all.  It kinda looks like the receive
    ring got filled up and then never got cleaned out by the driver.

    Either the ring state controller on the driver side or the state 
    controller on the EM hardware side got stuck.

                                                -Matt

Reply via email to