• S
    i40e: fix MSI-X vector redistribution if hw limit is reached · 4ce20abc
    Stefan Assmann 提交于
    The driver allocates 1 vector per CPU thread and the current hardware
    limit for vectors is 129 per PF. On systems with 128 or more threads
    this currently means all vectors are used by the PF leaving no room for
    additional features like VMDq, iWARP, etc...
    The code that should redistribute the vectors in this case is broken and
    never triggers. Fixed the code so that it actually triggers if the
    hardware limit is reached and adjust the number of queue pairs
    accordingly.
    Also the number of initially requested iWARP vectors was not properly
    saved when the vector limit was reached, and therefore always zero.
    
    Comparison with debug statement.
    Before:
    i40e 0000:2d:00.0: VMDq disabled, not enough MSI-X vectors
    i40e 0000:2d:00.0: IWARP disabled, not enough MSI-X vectors
    i40e 00.0 MSI-X vector distribution: PF 128, VMDq 0, FDSB 0, iWARP 0
    After:
    i40e 0000:2d:00.0: MSI-X vector limit reached, attempting to redistribute vectors
    i40e 00.0 MSI-X vector distribution: PF 78, VMDq 8, FDSB 0, iWARP 42
    Signed-off-by: NStefan Assmann <sassmann@kpanic.de>
    Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
    4ce20abc
i40e_main.c 318.4 KB