• Jack Morgenstein's avatar
    net/mlx4_core: Use cq quota in SRIOV when creating completion EQs · 6ed63d84
    Jack Morgenstein authored
    When creating EQs to handle CQ completion events for the PF
    or for VFs, we create enough EQE entries to handle completions
    for the max number of CQs that can use that EQ.
    
    When SRIOV is activated, the max number of CQs a VF (or the PF) can
    obtain is its CQ quota (determined by the Hypervisor resource tracker).
    Therefore, when creating an EQ, the number of EQE entries that the VF
    should request for that EQ is the CQ quota value (and not the total
    number of CQs available in the FW).
    
    Under SRIOV, the PF, also must use its CQ quota, because
    the resource tracker also controls how many CQs the PF can obtain.
    
    Using the FW total CQs instead of the CQ quota when creating EQs resulted
    wasting MTT entries, due to allocating more EQEs than were needed.
    
    Fixes: 5a0d0a61 ("mlx4: Structures and init/teardown for VF resource quotas")
    Signed-off-by: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
    Reported-by: default avatarDexuan Cui <decui@microsoft.com>
    Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6ed63d84
main.c 116 KB