netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [pull request][for-next 0/7] Mellanox, mlx5 shared code updates 2018-02-21
@ 2018-02-21 20:13 Saeed Mahameed
  2018-02-21 20:13 ` [for-next 1/7] net/mlx5: CQ Database per EQ Saeed Mahameed
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Saeed Mahameed @ 2018-02-21 20:13 UTC (permalink / raw)
  To: David S. Miller, Doug Ledford
  Cc: Leon Romanovsky, Jason Gunthorpe, netdev, linux-rdma,
	Saeed Mahameed

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(-)

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

end of thread, other threads:[~2018-02-25 19:57 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-21 20:13 [pull request][for-next 0/7] Mellanox, mlx5 shared code updates 2018-02-21 Saeed Mahameed
2018-02-21 20:13 ` [for-next 1/7] net/mlx5: CQ Database per EQ Saeed Mahameed
2018-02-21 20:13 ` [for-next 2/7] net/mlx5: Add missing likely/unlikely hints to cq events Saeed Mahameed
2018-02-21 20:13 ` [for-next 3/7] net/mlx5: EQ add/del CQ API Saeed Mahameed
2018-02-21 20:13 ` [for-next 4/7] net/mlx5: CQ hold/put API Saeed Mahameed
2018-02-21 20:13 ` [for-next 5/7] net/mlx5: Move CQ completion and event forwarding logic to eq.c Saeed Mahameed
2018-02-21 20:13 ` [for-next 6/7] net/mlx5: Remove redundant EQ API exports Saeed Mahameed
2018-02-21 20:13 ` [for-next 7/7] IB/mlx5: Implement fragmented completion queue (CQ) Saeed Mahameed
2018-02-22 17:34   ` Jason Gunthorpe
2018-02-23  0:04   ` Santosh Shilimkar
2018-02-23 19:13     ` Saeed Mahameed
2018-02-24  9:40       ` Majd Dibbiny
2018-02-25 19:56         ` Santosh Shilimkar
2018-02-22 19:39 ` [pull request][for-next 0/7] Mellanox, mlx5 shared code updates 2018-02-21 David Miller
2018-02-23  2:10   ` Doug Ledford

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).