[dpdk-dev] [PATCH v7 08/10] ixgbe: enable rx queue interrupts for both PF and VF

Liang, Cunming cunming.liang at intel.com
Tue May 12 03:07:05 CEST 2015



On 5/11/2015 11:00 PM, Stephen Hemminger wrote:
> On Mon, 11 May 2015 13:31:04 +0800
> "Liang, Cunming" <cunming.liang at intel.com> wrote:
>
>>> Since MSI-X vectors are limited on many hardware platforms, this whole API
>>> should be changed so that max_intr is based on number of rx_queues actually
>>> used by the application.  That means the setup needs to move from init to configure.
>> [LCM] When MSI-X is not used, intr_vec and set max_intr are useless. It
>> doesn't matter to non MSI-X mode.
>> As it allows the sequence "dev_stop->dev_reconfig->dev_start", the real
>> used number of queue may change.
>> So allocation only on dev_init and release only on dev_close, just make
>> it simple. During configure_msix, it do use the real useful queue number
>> to set queue/vector mapping, refer xxx_configure_msix().
> The problem is that if a customer has 16 NIC's with 32 MSI vectors per NIC,
> it maybe that the MSI table in south bridge gets full. That is why the ixgbe
> driver for Linux limits itself to num_online_cpu() + 1 MSI interrrupts.
>
[LCM] So your concern actual is not about when to allocate the queue/vec 
mapping table, but the number of vectors enabled per NIC.
But even using num_online_cpu()+1, the number of online cpu on a 2U 
system is easy to exceed 32. So probably using a MSI_VECTOR_NB_MAX to 
define it in config.


More information about the dev mailing list