All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 net-next 00/13] mlx4: order-0 allocations and page recycling
@ 2017-03-08 16:17 Eric Dumazet
  2017-03-08 16:17 ` [PATCH v4 net-next 01/13] mlx4: dma_dir is a mlx4_en_priv attribute Eric Dumazet
                   ` (14 more replies)
  0 siblings, 15 replies; 32+ messages in thread
From: Eric Dumazet @ 2017-03-08 16:17 UTC (permalink / raw)
  To: David S . Miller
  Cc: netdev, Tariq Toukan, Saeed Mahameed, Willem de Bruijn,
	Jesper Dangaard Brouer, Alexei Starovoitov, Eric Dumazet,
	Eric Dumazet

As mentioned half a year ago, we better switch mlx4 driver to order-0
allocations and page recycling.

This reduces vulnerability surface thanks to better skb->truesize
tracking and provides better performance in most cases.
(33 Gbit for one TCP flow on my lab hosts)

I will provide for linux-4.13 a patch on top of this series,
trying to improve data locality as described in
https://www.spinics.net/lists/netdev/msg422258.html

v2 provides an ethtool -S new counter (rx_alloc_pages) and
code factorization, plus Tariq fix.

v3 includes various fixes based on Tariq tests and feedback
from Saeed and Tariq.

v4 rebased on net-next for inclusion in linux-4.12, as requested
by Tariq.

Worth noting this patch series deletes ~250 lines of code ;)

Eric Dumazet (13):
  mlx4: dma_dir is a mlx4_en_priv attribute
  mlx4: remove order field from mlx4_en_frag_info
  mlx4: get rid of frag_prefix_size
  mlx4: rx_headroom is a per port attribute
  mlx4: reduce rx ring page_cache size
  mlx4: removal of frag_sizes[]
  mlx4: use order-0 pages for RX
  mlx4: add page recycling in receive path
  mlx4: add rx_alloc_pages counter in ethtool -S
  mlx4: do not access rx_desc from mlx4_en_process_rx_cq()
  mlx4: factorize page_address() calls
  mlx4: make validate_loopback() more generic
  mlx4: remove duplicate code in mlx4_en_process_rx_cq()

 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c  |   2 +-
 drivers/net/ethernet/mellanox/mlx4/en_port.c     |   2 +
 drivers/net/ethernet/mellanox/mlx4/en_rx.c       | 607 +++++++----------------
 drivers/net/ethernet/mellanox/mlx4/en_selftest.c |   6 -
 drivers/net/ethernet/mellanox/mlx4/en_tx.c       |   4 +-
 drivers/net/ethernet/mellanox/mlx4/mlx4_en.h     |  30 +-
 drivers/net/ethernet/mellanox/mlx4/mlx4_stats.h  |   2 +-
 7 files changed, 201 insertions(+), 452 deletions(-)

-- 
2.12.0.246.ga2ecc84866-goog

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

end of thread, other threads:[~2017-03-09 18:00 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-08 16:17 [PATCH v4 net-next 00/13] mlx4: order-0 allocations and page recycling Eric Dumazet
2017-03-08 16:17 ` [PATCH v4 net-next 01/13] mlx4: dma_dir is a mlx4_en_priv attribute Eric Dumazet
2017-03-09 13:52   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 02/13] mlx4: remove order field from mlx4_en_frag_info Eric Dumazet
2017-03-09 13:53   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 03/13] mlx4: get rid of frag_prefix_size Eric Dumazet
2017-03-09 13:53   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 04/13] mlx4: rx_headroom is a per port attribute Eric Dumazet
2017-03-09 13:54   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 05/13] mlx4: reduce rx ring page_cache size Eric Dumazet
2017-03-09 13:54   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 06/13] mlx4: removal of frag_sizes[] Eric Dumazet
2017-03-09 13:55   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 07/13] mlx4: use order-0 pages for RX Eric Dumazet
2017-03-09 13:55   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 08/13] mlx4: add page recycling in receive path Eric Dumazet
2017-03-09 13:56   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 09/13] mlx4: add rx_alloc_pages counter in ethtool -S Eric Dumazet
2017-03-09 13:56   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 10/13] mlx4: do not access rx_desc from mlx4_en_process_rx_cq() Eric Dumazet
2017-03-09 13:56   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 11/13] mlx4: factorize page_address() calls Eric Dumazet
2017-03-09 13:57   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 12/13] mlx4: make validate_loopback() more generic Eric Dumazet
2017-03-09 13:57   ` Tariq Toukan
2017-03-08 16:17 ` [PATCH v4 net-next 13/13] mlx4: remove duplicate code in mlx4_en_process_rx_cq() Eric Dumazet
2017-03-09 13:58   ` Tariq Toukan
2017-03-09 13:49 ` [PATCH v4 net-next 00/13] mlx4: order-0 allocations and page recycling Tariq Toukan
2017-03-09 14:26   ` Eric Dumazet
2017-03-09 15:53     ` Tariq Toukan
2017-03-09 17:52       ` David Miller
2017-03-09 17:59 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.