mbox

[pull,request,for-next,0/7] Mellanox, mlx5 shared code updates 2018-02-21

Message ID 20180221201354.8802-1-saeedm@mellanox.com
State Accepted, archived
Delegated to: David Miller
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux.git tags/mlx5-updates-2018-02-21

Message

Saeed Mahameed Feb. 21, 2018, 8:13 p.m. UTC
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(-)

Comments

David Miller Feb. 22, 2018, 7:39 p.m. UTC | #1
From: Saeed Mahameed <saeedm@mellanox.com>
Date: Wed, 21 Feb 2018 12:13:47 -0800

> 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,

Looks good to me, pulled into net-next, thanks.
Doug Ledford Feb. 23, 2018, 2:10 a.m. UTC | #2
On Thu, 2018-02-22 at 14:39 -0500, David Miller wrote:
> From: Saeed Mahameed <saeedm@mellanox.com>
> Date: Wed, 21 Feb 2018 12:13:47 -0800
> 
> > 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,
> 
> Looks good to me, pulled into net-next, thanks.

Thanks, pulled into rdma-next.