Hi Roland, so... RSS (Receive Side Scaling) TSS (Transmit Side Scaling, better known as MQ/Multi-Queue) are common networking techniques which allow to use contemporary NICs that support multiple receive and transmit descriptor queues (multi-queue), see also Documentation/networking/scaling.txt
This series introduces the concept of RSS and TSS QP groups which allows for implementing them by low level drivers and using them by IPoIB and later also by user space ULPs. An implementation for the mlx4_ib driver is provided. Next, the IPoIB code is modified to support RSS/TSS, this is done in two steps. The first step is a vectorization restructure as pre-step for TSS/RSS such that the driver becomes multi-ring one, using multiple RX/TX rings. The second step makes use of the QP groups concept to enable RSS and TSS. The patch series is built as following 1/7 net/mlx4: add new cap flags field to track more capabilities 2/7 IB/mlx4: replace KERN_yyy printk calls with pr_yyy ones 3/7 IB/mlx4: increase the number of vectors (EQs) available for ULPs are infra-structure changes in the mlx4 driver used later to support TSS/RSS they were already submitted ten days ago, but added here for clarity and ease of review. 4/7 IB/core: Add RSS and TSS QP groups is the IB core patch that introduces QP groups 5/7 IB/mlx4: Add support for RSS and TSS QP groups is the mlx4 driver implementation for QP groups and TSS/RSS 6/7 IB/ipoib: Implement vectorization restructure as pre-step for TSS/RSS is the vectorization restructure, pre-step for TSS/RSS 7/7 IB/ipoib: Add RSS and TSS support for datagram mode enables TSS and RSS Enjoy, Or. Shlomo Pongratz (7): net/mlx4: add new cap flags field to track more capabilities IB/mlx4: replace KERN_yyy printk call with pr_yyy ones IB/mlx4: increase the number of vectors (EQs) available for ULPs IB/core: Add RSS and TSS QP groups IB/mlx4: Add support for RSS and TSS QP groups IB/ipoib: Implement vectorization restructure as pre-step for TSS/RSS IB/ipoib: Add RSS and TSS support for datagram mode drivers/infiniband/core/verbs.c | 3 + drivers/infiniband/hw/amso1100/c2_provider.c | 3 + drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 + drivers/infiniband/hw/cxgb4/qp.c | 3 + drivers/infiniband/hw/ehca/ehca_qp.c | 6 + drivers/infiniband/hw/ipath/ipath_qp.c | 3 + drivers/infiniband/hw/mlx4/cq.c | 13 +- drivers/infiniband/hw/mlx4/main.c | 102 ++++- drivers/infiniband/hw/mlx4/mlx4_ib.h | 15 + drivers/infiniband/hw/mlx4/mr.c | 2 +- drivers/infiniband/hw/mlx4/qp.c | 353 ++++++++++++- drivers/infiniband/hw/mlx4/srq.c | 2 +- drivers/infiniband/hw/mthca/mthca_provider.c | 3 + drivers/infiniband/hw/nes/nes_verbs.c | 3 + drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 5 + drivers/infiniband/hw/qib/qib_qp.c | 5 + drivers/infiniband/ulp/ipoib/ipoib.h | 100 +++- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 97 +++-- drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 92 +++- drivers/infiniband/ulp/ipoib/ipoib_ib.c | 552 ++++++++++++++------ drivers/infiniband/ulp/ipoib/ipoib_main.c | 363 ++++++++++++-- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 34 +- drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 660 +++++++++++++++++++++--- drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 2 +- drivers/net/ethernet/mellanox/mlx4/fw.c | 29 + drivers/net/ethernet/mellanox/mlx4/fw.h | 2 + drivers/net/ethernet/mellanox/mlx4/main.c | 2 + include/linux/mlx4/device.h | 8 + include/rdma/ib_verbs.h | 26 +- 29 files changed, 2108 insertions(+), 382 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
