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(-) -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html