freebsd-skq/sys/dev/netmap
Luigi Rizzo 6dba29a285 Two performance-related fixes:
1. as reported by Alexander Fiveg, the allocator was reporting
   half of the allocated memory. Fix this by exiting from the
   loop earlier (not too critical because this code is going
   away soon).

2. following a discussion on freebsd-current
    http://lists.freebsd.org/pipermail/freebsd-current/2012-January/031144.html
   turns out that (re)loading the dmamap was expensive and not optimized.
   This operation is in the critical path when doing zero-copy forwarding
   between interfaces.
   At least on netmap and i386/amd64, the bus_dmamap_load can be
   completely bypassed if the map is NULL, so we do it.

The latter change gives an almost 3x improvement in forwarding
performance, from the previous 9.5Mpps at 2.9GHz to the current
line rate (14.2Mpps) at 1.733GHz. (this is for 64+4 byte packets,
in other configurations the PCIe bus is a bottleneck).
2012-01-13 10:21:15 +00:00
..
head.diff
if_em_netmap.h small code cleanup in preparation for future modifications in 2012-01-10 19:57:23 +00:00
if_igb_netmap.h small code cleanup in preparation for future modifications in 2012-01-10 19:57:23 +00:00
if_lem_netmap.h small code cleanup in preparation for future modifications in 2012-01-10 19:57:23 +00:00
if_re_netmap.h small code cleanup in preparation for future modifications in 2012-01-10 19:57:23 +00:00
ixgbe_netmap.h small code cleanup in preparation for future modifications in 2012-01-10 19:57:23 +00:00
netmap_kern.h Two performance-related fixes: 2012-01-13 10:21:15 +00:00
netmap.c Two performance-related fixes: 2012-01-13 10:21:15 +00:00