All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 00/12] Mellanox mlx5e XDP performance optimization
@ 2017-03-24 21:52 Saeed Mahameed
  2017-03-24 21:52 ` [PATCH net-next 01/12] net/mlx5e: Use dma_rmb rather than rmb in CQE fetch routine Saeed Mahameed
                   ` (14 more replies)
  0 siblings, 15 replies; 18+ messages in thread
From: Saeed Mahameed @ 2017-03-24 21:52 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, kernel-team, Saeed Mahameed

Hi Dave,

This series provides some preformancee optimizations for mlx5e
driver, especially for XDP TX flows.

1st patch is a simple change of rmb to dma_rmb in CQE fetch routine
which shows a huge gain for both RX and TX packet rates.

2nd patch removes write combining logic from the driver TX handler
and simplifies the TX logic while improving TX CPU utilization.

All other patches combined provide some refactoring to the driver TX
flows to allow some significant XDP TX improvements.

More details and performance numbers per patch can be found in each patch
commit message compared to the preceding patch.

Overall performance improvemnets
  System: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
    
Test case                   Baseline      Now      improvement
---------------------------------------------------------------
TX packets (24 threads)     45Mpps        54Mpps      20%
TC stack Drop (1 core)      3.45Mpps      3.6Mpps     5%
XDP Drop      (1 core)      14Mpps        16.9Mpps    20%
XDP TX        (1 core)      10.4Mpps      13.7Mpps    31%

Thanks,
Saeed.

Saeed Mahameed (12):
  net/mlx5e: Use dma_rmb rather than rmb in CQE fetch routine
  net/mlx5e: Xmit, no write combining
  net/mlx5e: Single bfreg (UAR) for all mlx5e SQs and netdevs
  net/mlx5e: Move XDP completion functions to rx file
  net/mlx5e: Move mlx5e_rq struct declaration
  net/mlx5e: Move XDP SQ instance into RQ
  net/mlx5e: Poll XDP TX CQ before RX CQ
  net/mlx5e: Optimize XDP frame xmit
  net/mlx5e: Generalize tx helper functions for different SQ types
  net/mlx5e: Proper names for SQ/RQ/CQ functions
  net/mlx5e: Generalize SQ create/modify/destroy functions
  net/mlx5e: Different SQ types

 drivers/net/ethernet/mellanox/mlx5/core/en.h       | 319 +++++-----
 .../net/ethernet/mellanox/mlx5/core/en_common.c    |   9 +
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  | 644 +++++++++++++--------
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c    | 124 +++-
 drivers/net/ethernet/mellanox/mlx5/core/en_tx.c    | 147 +----
 drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c  |  70 +--
 include/linux/mlx5/driver.h                        |   1 +
 7 files changed, 716 insertions(+), 598 deletions(-)

-- 
2.11.0

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

end of thread, other threads:[~2017-03-26  9:17 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-24 21:52 [PATCH net-next 00/12] Mellanox mlx5e XDP performance optimization Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 01/12] net/mlx5e: Use dma_rmb rather than rmb in CQE fetch routine Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 02/12] net/mlx5e: Xmit, no write combining Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 03/12] net/mlx5e: Single bfreg (UAR) for all mlx5e SQs and netdevs Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 04/12] net/mlx5e: Move XDP completion functions to rx file Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 05/12] net/mlx5e: Move mlx5e_rq struct declaration Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 06/12] net/mlx5e: Move XDP SQ instance into RQ Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 07/12] net/mlx5e: Poll XDP TX CQ before RX CQ Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 08/12] net/mlx5e: Optimize XDP frame xmit Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 09/12] net/mlx5e: Generalize tx helper functions for different SQ types Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 10/12] net/mlx5e: Proper names for SQ/RQ/CQ functions Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 11/12] net/mlx5e: Generalize SQ create/modify/destroy functions Saeed Mahameed
2017-03-24 21:52 ` [PATCH net-next 12/12] net/mlx5e: Different SQ types Saeed Mahameed
2017-03-24 23:26 ` [PATCH net-next 00/12] Mellanox mlx5e XDP performance optimization Alexei Starovoitov
2017-03-25 12:30   ` Saeed Mahameed
2017-03-25  2:12 ` David Miller
2017-03-25 16:54 ` Tom Herbert
2017-03-26  9:16   ` Saeed Mahameed

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.