net/mlx5: Round-Robin EQs over IRQs
Whenever users provided affinity for an EQ creation request, map the EQ to a matching IRQ. Matching IRQ=IRQ with the same affinity and type (completion/control) of the EQ created. This mapping is being done in agressive dedicated IRQ allocation scheme, which described bellow. First, we check whether there is a matching IRQ that his min threshold is not exhausted. - min_eqs_threshold = 3 for control EQ. - min_eqs_threshold = 1 for completion EQ. In case no matching IRQ was found, try to request a new IRQ. In case we can't request a new IRQ, reuse least-used matching IRQ. Signed-off-by:Shay Drory <shayd@nvidia.com> Reviewed-by:
Leon Romanovsky <leonro@nvidia.com> Reviewed-by:
Tariq Toukan <tariqt@nvidia.com> Signed-off-by:
Saeed Mahameed <saeedm@nvidia.com>
Showing
- drivers/infiniband/hw/mlx5/odp.c 1 addition, 2 deletionsdrivers/infiniband/hw/mlx5/odp.c
- drivers/net/ethernet/mellanox/mlx5/core/eq.c 8 additions, 6 deletionsdrivers/net/ethernet/mellanox/mlx5/core/eq.c
- drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h 3 additions, 1 deletiondrivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h
- drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c 177 additions, 20 deletionsdrivers/net/ethernet/mellanox/mlx5/core/pci_irq.c
Please register or sign in to comment