netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/6] mvneta driver performance improvements
@ 2014-01-12 11:24 Willy Tarreau
  2014-01-12 11:24 ` [PATCH net-next 1/6] net: mvneta: remove tests for impossible cases in the tx_done path Willy Tarreau
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Willy Tarreau @ 2014-01-12 11:24 UTC (permalink / raw)
  To: davem; +Cc: netdev, Willy Tarreau

Hi,

this patch series implements several performance improvements on the
mvneta driver.

  - The first 3 patches are essentially cleanups, code deduplication
    and minor optimizations for not re-fetching a value we already have
    (status).

  - patch 4 changes the prefetch of Rx descriptor from current one to
    next one. In benchmarks, it results in about 1% general performance
    increase on HTTP traffic, probably because prefetching the current
    descriptor does not leave enough time between the start of prefetch
    and its usage.

  - patch 5 implements support for build_skb() on Rx path. The driver
    now preallocates frags instead of skbs and builds an skb just before
    delivering it. This results in a 2% performance increase on HTTP
    traffic, and up to 5% on small packet Rx rate.

  - patch 6 implements rx_copybreak for small packets (256 bytes). It
    avoids a dma_map_single()/dma_unmap_single() and increases the Rx
    rate by 16.4%, from 486kpps to 573kpps. Further improvements up to
    711kpps are possible depending how the DMA is used.

This patch series depends on the previous series of fixes and is only
for the net-next tree.

Thanks!
Willy

---

Willy Tarreau (6):
  net: mvneta: remove tests for impossible cases in the tx_done path
  net: mvneta: factor rx refilling code
  net: mvneta: simplify access to the rx descriptor status
  net: mvneta: prefetch next rx descriptor instead of current one
  net: mvneta: convert to build_skb()
  net: mvneta: implement rx_copybreak

 drivers/net/ethernet/marvell/mvneta.c | 152 +++++++++++++++++++++-------------
 1 file changed, 95 insertions(+), 57 deletions(-)

-- 
1.7.12.2.21.g234cd45.dirty

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-01-15  8:18 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-12 11:24 [PATCH net-next 0/6] mvneta driver performance improvements Willy Tarreau
2014-01-12 11:24 ` [PATCH net-next 1/6] net: mvneta: remove tests for impossible cases in the tx_done path Willy Tarreau
2014-01-12 11:24 ` [PATCH net-next 2/6] net: mvneta: factor rx refilling code Willy Tarreau
2014-01-12 11:24 ` [PATCH net-next 3/6] net: mvneta: simplify access to the rx descriptor status Willy Tarreau
2014-01-12 11:24 ` [PATCH net-next 4/6] net: mvneta: prefetch next rx descriptor instead of current one Willy Tarreau
2014-01-12 11:24 ` [PATCH net-next 5/6] net: mvneta: convert to build_skb() Willy Tarreau
2014-01-12 11:24 ` [PATCH net-next 6/6] net: mvneta: implement rx_copybreak Willy Tarreau
2014-01-13 10:13   ` David Laight
2014-01-13 10:49     ` Willy Tarreau
2014-01-15  1:00 ` [PATCH net-next 0/6] mvneta driver performance improvements David Miller
2014-01-15  7:25   ` Willy Tarreau
2014-01-15  7:48   ` Willy Tarreau
2014-01-15  8:05     ` David Miller
2014-01-15  8:18       ` Willy Tarreau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).