From: Saeed Mahameed <saeedm@mellanox.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org, kernel-team@fb.com,
Saeed Mahameed <saeedm@mellanox.com>
Subject: [PATCH net-next 00/12] Mellanox mlx5e XDP performance optimization
Date: Sat, 25 Mar 2017 00:52:02 +0300 [thread overview]
Message-ID: <20170324215214.25711-1-saeedm@mellanox.com> (raw)
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
next reply other threads:[~2017-03-24 21:52 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-24 21:52 Saeed Mahameed [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170324215214.25711-1-saeedm@mellanox.com \
--to=saeedm@mellanox.com \
--cc=davem@davemloft.net \
--cc=kernel-team@fb.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).