[dpdk-dev] [PATCH v3] doc: add known issue about legacy intr mode for ixgbe

Li, Xiaoyun xiaoyun.li at intel.com
Mon Oct 15 05:00:13 CEST 2018


Hi

> > +Do not bind the ``uio_pci_generic`` module in X550 NICs.
> > +Do not bind ``igb_uio`` with legacy mode in X550 NICs.
> > +Before using ``vfio`` with legacy mode in X550 NICs, using ``modprobe
> > +vfio `` ``nointxmask=1`` to bind ``vfio``.
> 
> I have couple questions here.
> If noinitxmask=1 is set, does that mean, in vfio interrupt handler we will not
> check intr mask? but what if the intx is shared by another devices?
> Does that mean we will also handle interrupt from other devices which is not
> expected?

If noinitxmask=1 is not set, vfio will check if it has broken intx msking (which is hardcoded. Only i40e is considered as broken).
If it is broken, vfio_intx_handler will disable_irq_nosync and mask this irq and then return the efd to userspace.
But if it is not broken, vfio_intx_handler will call pci_check_and_set_intx_mask. In pci_check_and_set_intx_mask, the interrupt status bit is checked.
And for X550, vfio thinks it's intx masking is not broken and will check its interrupt status bit. But this bit is not enabled in X550 in fact. Then vfio will think the interrupt isn't triggered and will not deal with it. Then "nobody cared" issue occurs.

But when with nointxmask=1, vfio will think the device has broken intx masking. Then will disable_irq_nosync and mask this irq and then return the efd to userspace.

Since it will disable_irq_nosync, the irq will be affected if it is shared by another device.
> 
> Not sure if we should add some statement like "if the intx is not shared with
> other device ...." ?
Yes. I will add it.

> 
> >
> >  Inline crypto processing support
> >  --------------------------------
> > --
> > 2.7.4



More information about the dev mailing list