Packet passing performance study on exotic hardware.

David Gilbert dgilbert at
Fri Oct 8 09:03:30 PDT 2004

>>>>> "Gerrit" == Gerrit Nagelhout <gnagelhout at> writes:

Gerrit> David Gilbert Wrote:
>>  - with polling and excessive packets, it doesn't "receive" the
>> full load of packets.  In netstat -w, they show as input "errors"
>> although the number of "errors" isn't strictly related to the
>> number of dropped packets.  It's just some large number that
>> generally increases with the number of dropped packets.

Gerrit> In em_update_stats_counters, errors is calculated as follows:

Gerrit> 	/* Rx Errors */
ifp-> if_ierrors =
adapter-> dropped_pkts + stats.rxerrc + stats.crcerrs + stats.algnerrc
adapter-> + stats.rlec + adapter->stats.rnbc + stats.mpc +
adapter-> adapter->stats.cexterr;

Gerrit> The extra errors you are talking about come from doing mpc +
Gerrit> rnbc.  Only mpc (missed packet count) (and the other errors of
Gerrit> course) should be used.  Rnbc is an indication of the internal
Gerrit> buffer filling up, but not yet dropping packets, and should
Gerrit> not be included.

That does explain it.  I did, BTW increase to the 4096 sized ring as
my cards supported it.  It seems to me that the bottle neck is the
time required to send preventing the driver from getting back to the
receive queue.


|David Gilbert, Independent Contractor.       | Two things can only be     |
|Mail:       dave at                    |  equal if and only if they |
|                              |   are precisely opposite.  |

More information about the freebsd-current mailing list