DragonFly- master sys/dev/netif/em if_em.c if_em.h

Sepherosa Ziehau sephe at crater.dragonflybsd.org
Tue Feb 24 03:02:49 PST 2009

commit 51e6819fc2ad7cefdf830dcc9f20bcbe2af2aa52
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date:   Fri Feb 20 19:21:53 2009 +0800

    em(4): Avoid allocating a csum offloading TX desc whenever possible.
    According to Intel's PCIe GbE Controllers Open Source Software
    Developer's Manual Revision 1.8: a csum offloading TX desc will
    prevent TX data read requests from being pipelined, thus reduce TX
    performance.  The pipelining effect is not obvious when transmitting
    bulk data (e.g. 1472 bytes UDP datagram), but it could be dominant
    when transmitting tiny packets.  So we should avoid allocating a
    csum offloading TX desc whenever possible to take advantage of the
    pipelining effect.
    On 82573E_IAMT,
    Before this commit: ~700Kpps
    After this commit:  ~990Kpps
    The funny thing about this commit is:
    Old driver code from Intel's FreeBSD driver 6.2.9 roughly did what
    we are doing in this commit, while Intel's FreeBSD driver 6.9.6
    simply follows Linux's way to flush the performance to the toilet ...

Summary of changes:
 sys/dev/netif/em/if_em.c |  106 +++++++++++++++++++++++++++++----------------
 sys/dev/netif/em/if_em.h |    9 ++++-
 2 files changed, 76 insertions(+), 39 deletions(-)


DragonFly BSD source repository

More information about the Commits mailing list