[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180221201354.8802-1-saeedm@mellanox.com>
Date: Wed, 21 Feb 2018 12:13:47 -0800
From: Saeed Mahameed <saeedm@...lanox.com>
To: "David S. Miller" <davem@...emloft.net>,
Doug Ledford <dledford@...hat.com>
Cc: Leon Romanovsky <leonro@...lanox.com>,
Jason Gunthorpe <jgg@...lanox.com>, netdev@...r.kernel.org,
linux-rdma@...r.kernel.org, Saeed Mahameed <saeedm@...lanox.com>
Subject: [pull request][for-next 0/7] Mellanox, mlx5 shared code updates 2018-02-21
Hi Dave & Doug,
This series includes shared code updates for mlx5 core driver for both
netdev and rdma subsystems. This series should be pulled to both
trees so we can continue netdev and rdma specific submissions separately.
For more information please see tag log below.
P.S. We expect two more shared code pull requests.
The series doesn't cause any conflict with the latest mlx5 net fixes
series.
Please pull and let me know if there's any issue,
Thanks,
Saeed.
---
The following changes since commit 7928b2cbe55b2a410a0f5c1f154610059c57b1b2:
Linux 4.16-rc1 (2018-02-11 15:04:29 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux.git tags/mlx5-updates-2018-02-21
for you to fetch changes up to 388ca8be00370db132464e27f745b8a0add19fcb:
IB/mlx5: Implement fragmented completion queue (CQ) (2018-02-15 00:30:03 -0800)
----------------------------------------------------------------
mlx5-updates-2018-02-21
This series includes shared code updates for mlx5 core driver for both
netdev and rdma subsystems.
By Saeed,
First six patches of the series are meant to address a performance issue
and should provide a performance boost for multi core IRQ interrupt hungry
workloads. The issue is fixed in the first patch, all other patches are
meant to refactor the code in light of this fix.
The problem it comes to fix, is a shared spinlock accessed across all HCA
IRQs which protects the CQ database. To solve this we simply move the CQ
database and its spinlock to be per EQ (IRQ), thus per core.
By Yonatan,
Fragmented completion queue (CQ) for RDMA,
core driver implementation to create fragmented CQ buffers rather than
one large contiguous memory buffer, the implementation scheme already
exist and used by the netdev CQs, the patch shares that code with the
rdma CQ creation flow and makes use of the new API in mlx5_ib driver.
Thanks,
Saeed.
----------------------------------------------------------------
Saeed Mahameed (6):
net/mlx5: CQ Database per EQ
net/mlx5: Add missing likely/unlikely hints to cq events
net/mlx5: EQ add/del CQ API
net/mlx5: CQ hold/put API
net/mlx5: Move CQ completion and event forwarding logic to eq.c
net/mlx5: Remove redundant EQ API exports
Yonatan Cohen (1):
IB/mlx5: Implement fragmented completion queue (CQ)
drivers/infiniband/hw/mlx5/cq.c | 64 +++++++-----
drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 37 ++++---
drivers/net/ethernet/mellanox/mlx5/core/cq.c | 116 +++++----------------
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 92 +++++++++++++++-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 21 ++++
drivers/net/ethernet/mellanox/mlx5/core/wq.c | 18 ++--
drivers/net/ethernet/mellanox/mlx5/core/wq.h | 22 ++--
include/linux/mlx5/cq.h | 14 ++-
include/linux/mlx5/driver.h | 88 ++++++++--------
12 files changed, 279 insertions(+), 218 deletions(-)
Powered by blists - more mailing lists