DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe
@ 2018-09-27  9:16 Xiaoyun Li
  2018-09-30  2:24 ` Zhang, Qi Z
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Xiaoyun Li @ 2018-09-27  9:16 UTC (permalink / raw)
  To: beilei.xing, qi.z.zhang, dev, wenzhuo.lu, jingjing.wu; +Cc: Xiaoyun Li

When using uio_pci_generic module or using legacy interrupt mode of
igb_uio or vfio, X550 cannot get interrupts. Because the Interrupt
Status bit is not implemented, then the irq cannot be handled correctly
and cannot report the event fd to DPDK apps.

Add this hw limitation and details into ixgbe known issue.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
 doc/guides/nics/ixgbe.rst | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 16d6390..4f89a6d 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -200,6 +200,32 @@ There is no RTE API to add a VF's MAC address from the PF. On ixgbe, the
 ``rte_eth_dev_mac_addr_add()`` function can be used to add a VF's MAC address,
 as a workaround.
 
+legacy interrupt mode and uio pci generic module cannot be used in X550
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Desccription
+^^^^^^^^^^^^
+X550 cannot get interrupts if using ``uio_pci_generic`` module or using legacy
+interrupt mode of ``igb_uio`` or ``vfio``. Because the errata of X550 states
+that the Interrupt Status bit is not implemented. The errata is the item #22
+from `X550 spec update
+<https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/ethernet-x550-spec-update.pdf>`_
+
+Implication
+^^^^^^^^^^^
+When using ``uio_pci_generic`` module or using legacy interrupt mode of
+``igb_uio`` or ``vfio``, the Interrupt Status bit would be checked if the
+interrupt is comming. Since the bit is not implemented in X550, the irq cannot
+be handled correctly and cannot report the event fd to DPDK apps. Then apps
+cannot get interrupts and ``dmesg`` will show messages like ``irq #No.: ``
+``nobody cared.``
+
+Workaround
+^^^^^^^^^^
+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``.
 
 Inline crypto processing support
 --------------------------------
-- 
2.7.4

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe
  2018-09-27  9:16 [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe Xiaoyun Li
@ 2018-09-30  2:24 ` Zhang, Qi Z
  2018-09-30  2:46   ` Li, Xiaoyun
  2018-09-30  2:48 ` [dpdk-dev] [PATCH v2] " Xiaoyun Li
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Zhang, Qi Z @ 2018-09-30  2:24 UTC (permalink / raw)
  To: Li, Xiaoyun, Xing, Beilei, dev, Lu, Wenzhuo, Wu, Jingjing



> -----Original Message-----
> From: Li, Xiaoyun
> Sent: Thursday, September 27, 2018 5:17 PM
> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>
> Cc: Li, Xiaoyun <xiaoyun.li@intel.com>
> Subject: [PATCH] doc: add known issue about legacy intr mode for ixgbe
> 
> When using uio_pci_generic module or using legacy interrupt mode of igb_uio
> or vfio, X550 cannot get interrupts. Because the Interrupt Status bit is not
> implemented, then the irq cannot be handled correctly and cannot report the
> event fd to DPDK apps.
> 
> Add this hw limitation and details into ixgbe known issue.
> 
> Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
> ---
>  doc/guides/nics/ixgbe.rst | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst index
> 16d6390..4f89a6d 100644
> --- a/doc/guides/nics/ixgbe.rst
> +++ b/doc/guides/nics/ixgbe.rst
> @@ -200,6 +200,32 @@ There is no RTE API to add a VF's MAC address from
> the PF. On ixgbe, the  ``rte_eth_dev_mac_addr_add()`` function can be used
> to add a VF's MAC address,  as a workaround.
> 
> +legacy interrupt mode and uio pci generic module cannot be used in X550
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~~~~~~~

the reason we can't use uio_pci_generic, is it also because uio_pci_generic require legacy mode?
If it is, can we simplified the title as " x550 does not support legacy interrupt mode"

> +
> +Desccription
> +^^^^^^^^^^^^
> +X550 cannot get interrupts if using ``uio_pci_generic`` module or using
> +legacy interrupt mode of ``igb_uio`` or ``vfio``. Because the errata of
> +X550 states that the Interrupt Status bit is not implemented. The
> +errata is the item #22 from `X550 spec update
> +<https://www.intel.com/content/dam/www/public/us/en/documents/datas
> heet
> +s/ethernet-x550-spec-update.pdf>`_

Seems the url here is not correct, there is no errata item #22

Regards
Qi

> +
> +Implication
> +^^^^^^^^^^^
> +When using ``uio_pci_generic`` module or using legacy interrupt mode of
> +``igb_uio`` or ``vfio``, the Interrupt Status bit would be checked if
> +the interrupt is comming. Since the bit is not implemented in X550, the
> +irq cannot be handled correctly and cannot report the event fd to DPDK
> +apps. Then apps cannot get interrupts and ``dmesg`` will show messages
> +like ``irq #No.: `` ``nobody cared.``
> +
> +Workaround
> +^^^^^^^^^^
> +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``.
> 
>  Inline crypto processing support
>  --------------------------------
> --
> 2.7.4

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe
  2018-09-30  2:24 ` Zhang, Qi Z
@ 2018-09-30  2:46   ` Li, Xiaoyun
  0 siblings, 0 replies; 9+ messages in thread
From: Li, Xiaoyun @ 2018-09-30  2:46 UTC (permalink / raw)
  To: Zhang, Qi Z, Xing, Beilei, dev, Lu, Wenzhuo, Wu, Jingjing

Hi

> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Sunday, September 30, 2018 10:25
> To: Li, Xiaoyun <xiaoyun.li@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>
> Subject: RE: [PATCH] doc: add known issue about legacy intr mode for ixgbe
> 
> 
> 
> > -----Original Message-----
> > From: Li, Xiaoyun
> > Sent: Thursday, September 27, 2018 5:17 PM
> > To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; dev@dpdk.org; Lu, Wenzhuo
> > <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
> > Cc: Li, Xiaoyun <xiaoyun.li@intel.com>
> > Subject: [PATCH] doc: add known issue about legacy intr mode for ixgbe
> >
> > When using uio_pci_generic module or using legacy interrupt mode of
> > igb_uio or vfio, X550 cannot get interrupts. Because the Interrupt
> > Status bit is not implemented, then the irq cannot be handled
> > correctly and cannot report the event fd to DPDK apps.
> >
> > Add this hw limitation and details into ixgbe known issue.
> >
> > Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
> > ---
> >  doc/guides/nics/ixgbe.rst | 26 ++++++++++++++++++++++++++
> >  1 file changed, 26 insertions(+)
> >
> > diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
> > index 16d6390..4f89a6d 100644
> > --- a/doc/guides/nics/ixgbe.rst
> > +++ b/doc/guides/nics/ixgbe.rst
> > @@ -200,6 +200,32 @@ There is no RTE API to add a VF's MAC address
> > from the PF. On ixgbe, the  ``rte_eth_dev_mac_addr_add()`` function
> > can be used to add a VF's MAC address,  as a workaround.
> >
> > +legacy interrupt mode and uio pci generic module cannot be used in
> > +X550
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~
> > ~~~~~~~
> 
> the reason we can't use uio_pci_generic, is it also because uio_pci_generic
> require legacy mode?
> If it is, can we simplified the title as " x550 does not support legacy interrupt
> mode"

Sure.

> 
> > +
> > +Desccription
> > +^^^^^^^^^^^^
> > +X550 cannot get interrupts if using ``uio_pci_generic`` module or
> > +using legacy interrupt mode of ``igb_uio`` or ``vfio``. Because the
> > +errata of
> > +X550 states that the Interrupt Status bit is not implemented. The
> > +errata is the item #22 from `X550 spec update
> >
> +<https://www.intel.com/content/dam/www/public/us/en/documents/dat
> as
> > heet
> > +s/ethernet-x550-spec-update.pdf>`_
> 
> Seems the url here is not correct, there is no errata item #22
Yes. Will correct it.
Thanks.

> 
> Regards
> Qi
> 
> > +
> > +Implication
> > +^^^^^^^^^^^
> > +When using ``uio_pci_generic`` module or using legacy interrupt mode
> > +of ``igb_uio`` or ``vfio``, the Interrupt Status bit would be checked
> > +if the interrupt is comming. Since the bit is not implemented in
> > +X550, the irq cannot be handled correctly and cannot report the event
> > +fd to DPDK apps. Then apps cannot get interrupts and ``dmesg`` will
> > +show messages like ``irq #No.: `` ``nobody cared.``
> > +
> > +Workaround
> > +^^^^^^^^^^
> > +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``.
> >
> >  Inline crypto processing support
> >  --------------------------------
> > --
> > 2.7.4

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [dpdk-dev] [PATCH v2] doc: add known issue about legacy intr mode for ixgbe
  2018-09-27  9:16 [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe Xiaoyun Li
  2018-09-30  2:24 ` Zhang, Qi Z
@ 2018-09-30  2:48 ` Xiaoyun Li
  2018-09-30  2:53 ` [dpdk-dev] [PATCH v3] " Xiaoyun Li
  2018-10-15  4:36 ` [dpdk-dev] [PATCH v4] " Xiaoyun Li
  3 siblings, 0 replies; 9+ messages in thread
From: Xiaoyun Li @ 2018-09-30  2:48 UTC (permalink / raw)
  To: beilei.xing, qi.z.zhang, dev, wenzhuo.lu, jingjing.wu; +Cc: Xiaoyun Li

When using uio_pci_generic module or using legacy interrupt mode of
igb_uio or vfio, X550 cannot get interrupts. Because the Interrupt
Status bit is not implemented, then the irq cannot be handled correctly
and cannot report the event fd to DPDK apps.

Add this hw limitation and details into ixgbe known issue.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
v2:
 * Correct the link of X550 spec update.
 * Polish the known issue title.
---
 doc/guides/nics/ixgbe.rst | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 16d6390..086b048 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -200,6 +200,32 @@ There is no RTE API to add a VF's MAC address from the PF. On ixgbe, the
 ``rte_eth_dev_mac_addr_add()`` function can be used to add a VF's MAC address,
 as a workaround.
 
+X550 does not support legacy interrupt mode
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Desccription
+^^^^^^^^^^^^
+X550 cannot get interrupts if using ``uio_pci_generic`` module or using legacy
+interrupt mode of ``igb_uio`` or ``vfio``. Because the errata of X550 states
+that the Interrupt Status bit is not implemented. The errata is the item #22
+from `X550 spec update <https://www.intel.com/content/dam/www/public/us/en/
+documents/specification-updates/ethernet-x550-spec-update.pdf>`_
+
+Implication
+^^^^^^^^^^^
+When using ``uio_pci_generic`` module or using legacy interrupt mode of
+``igb_uio`` or ``vfio``, the Interrupt Status bit would be checked if the
+interrupt is comming. Since the bit is not implemented in X550, the irq cannot
+be handled correctly and cannot report the event fd to DPDK apps. Then apps
+cannot get interrupts and ``dmesg`` will show messages like ``irq #No.: ``
+``nobody cared.``
+
+Workaround
+^^^^^^^^^^
+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``.
 
 Inline crypto processing support
 --------------------------------
-- 
2.7.4

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [dpdk-dev] [PATCH v3] doc: add known issue about legacy intr mode for ixgbe
  2018-09-27  9:16 [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe Xiaoyun Li
  2018-09-30  2:24 ` Zhang, Qi Z
  2018-09-30  2:48 ` [dpdk-dev] [PATCH v2] " Xiaoyun Li
@ 2018-09-30  2:53 ` Xiaoyun Li
  2018-10-03 13:29   ` Zhang, Qi Z
  2018-10-15  4:36 ` [dpdk-dev] [PATCH v4] " Xiaoyun Li
  3 siblings, 1 reply; 9+ messages in thread
From: Xiaoyun Li @ 2018-09-30  2:53 UTC (permalink / raw)
  To: beilei.xing, qi.z.zhang, dev, wenzhuo.lu, jingjing.wu; +Cc: Xiaoyun Li

When using uio_pci_generic module or using legacy interrupt mode of
igb_uio or vfio, X550 cannot get interrupts. Because the Interrupt
Status bit is not implemented, then the irq cannot be handled correctly
and cannot report the event fd to DPDK apps.

Add this hw limitation and details into ixgbe known issue.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
v3:
 * Correct a misspelling.
v2:
 * Correct the link of X550 spec update.
 * Polish the known issue title.
---
 doc/guides/nics/ixgbe.rst | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 16d6390..af4c876 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -200,6 +200,32 @@ There is no RTE API to add a VF's MAC address from the PF. On ixgbe, the
 ``rte_eth_dev_mac_addr_add()`` function can be used to add a VF's MAC address,
 as a workaround.
 
+X550 does not support legacy interrupt mode
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Desccription
+^^^^^^^^^^^^
+X550 cannot get interrupts if using ``uio_pci_generic`` module or using legacy
+interrupt mode of ``igb_uio`` or ``vfio``. Because the errata of X550 states
+that the Interrupt Status bit is not implemented. The errata is the item #22
+from `X550 spec update <https://www.intel.com/content/dam/www/public/us/en/
+documents/specification-updates/ethernet-x550-spec-update.pdf>`_
+
+Implication
+^^^^^^^^^^^
+When using ``uio_pci_generic`` module or using legacy interrupt mode of
+``igb_uio`` or ``vfio``, the Interrupt Status bit would be checked if the
+interrupt is coming. Since the bit is not implemented in X550, the irq cannot
+be handled correctly and cannot report the event fd to DPDK apps. Then apps
+cannot get interrupts and ``dmesg`` will show messages like ``irq #No.: ``
+``nobody cared.``
+
+Workaround
+^^^^^^^^^^
+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``.
 
 Inline crypto processing support
 --------------------------------
-- 
2.7.4

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH v3] doc: add known issue about legacy intr mode for ixgbe
  2018-09-30  2:53 ` [dpdk-dev] [PATCH v3] " Xiaoyun Li
@ 2018-10-03 13:29   ` Zhang, Qi Z
  2018-10-15  3:00     ` Li, Xiaoyun
  0 siblings, 1 reply; 9+ messages in thread
From: Zhang, Qi Z @ 2018-10-03 13:29 UTC (permalink / raw)
  To: Li, Xiaoyun, Xing, Beilei, dev, Lu, Wenzhuo, Wu, Jingjing



> -----Original Message-----
> From: Li, Xiaoyun
> Sent: Sunday, September 30, 2018 10:53 AM
> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>
> Cc: Li, Xiaoyun <xiaoyun.li@intel.com>
> Subject: [PATCH v3] doc: add known issue about legacy intr mode for ixgbe
> 
> When using uio_pci_generic module or using legacy interrupt mode of igb_uio
> or vfio, X550 cannot get interrupts. Because the Interrupt Status bit is not
> implemented, then the irq cannot be handled correctly and cannot report the
> event fd to DPDK apps.
> 
> Add this hw limitation and details into ixgbe known issue.
> 
> Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
> ---
> v3:
>  * Correct a misspelling.
> v2:
>  * Correct the link of X550 spec update.
>  * Polish the known issue title.
> ---
>  doc/guides/nics/ixgbe.rst | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst index
> 16d6390..af4c876 100644
> --- a/doc/guides/nics/ixgbe.rst
> +++ b/doc/guides/nics/ixgbe.rst
> @@ -200,6 +200,32 @@ There is no RTE API to add a VF's MAC address from
> the PF. On ixgbe, the  ``rte_eth_dev_mac_addr_add()`` function can be used
> to add a VF's MAC address,  as a workaround.
> 
> +X550 does not support legacy interrupt mode
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Desccription
> +^^^^^^^^^^^^
> +X550 cannot get interrupts if using ``uio_pci_generic`` module or using
> +legacy interrupt mode of ``igb_uio`` or ``vfio``. Because the errata of
> +X550 states that the Interrupt Status bit is not implemented. The
> +errata is the item #22 from `X550 spec update
> +<https://www.intel.com/content/dam/www/public/us/en/
> +documents/specification-updates/ethernet-x550-spec-update.pdf>`_
> +
> +Implication
> +^^^^^^^^^^^
> +When using ``uio_pci_generic`` module or using legacy interrupt mode of
> +``igb_uio`` or ``vfio``, the Interrupt Status bit would be checked if
> +the interrupt is coming. Since the bit is not implemented in X550, the
> +irq cannot be handled correctly and cannot report the event fd to DPDK
> +apps. Then apps cannot get interrupts and ``dmesg`` will show messages
> +like ``irq #No.: `` ``nobody cared.``
> +
> +Workaround
> +^^^^^^^^^^
> +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?

Not sure if we should add some statement like "if the intx is not shared with other device ...." ?

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH v3] doc: add known issue about legacy intr mode for ixgbe
  2018-10-03 13:29   ` Zhang, Qi Z
@ 2018-10-15  3:00     ` Li, Xiaoyun
  0 siblings, 0 replies; 9+ messages in thread
From: Li, Xiaoyun @ 2018-10-15  3:00 UTC (permalink / raw)
  To: Zhang, Qi Z, Xing, Beilei, dev, Lu, Wenzhuo, Wu, Jingjing

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [dpdk-dev] [PATCH v4] doc: add known issue about legacy intr mode for ixgbe
  2018-09-27  9:16 [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe Xiaoyun Li
                   ` (2 preceding siblings ...)
  2018-09-30  2:53 ` [dpdk-dev] [PATCH v3] " Xiaoyun Li
@ 2018-10-15  4:36 ` Xiaoyun Li
  2018-10-15 16:14   ` Zhang, Qi Z
  3 siblings, 1 reply; 9+ messages in thread
From: Xiaoyun Li @ 2018-10-15  4:36 UTC (permalink / raw)
  To: beilei.xing, qi.z.zhang, dev, wenzhuo.lu, jingjing.wu; +Cc: Xiaoyun Li

When using uio_pci_generic module or using legacy interrupt mode of
igb_uio or vfio, X550 cannot get interrupts. Because the Interrupt
Status bit is not implemented, then the irq cannot be handled correctly
and cannot report the event fd to DPDK apps.

Add this hw limitation and details into ixgbe known issue.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
v4:
 * Clarify that the vfio workaround only works when the intx is not shared
   with other devices.
v3:
 * Correct a misspelling.
v2:
 * Correct the link of X550 spec update.
 * Polish the known issue title.
---
 doc/guides/nics/ixgbe.rst | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 16d6390..1c294b0 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -200,6 +200,33 @@ There is no RTE API to add a VF's MAC address from the PF. On ixgbe, the
 ``rte_eth_dev_mac_addr_add()`` function can be used to add a VF's MAC address,
 as a workaround.
 
+X550 does not support legacy interrupt mode
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Desccription
+^^^^^^^^^^^^
+X550 cannot get interrupts if using ``uio_pci_generic`` module or using legacy
+interrupt mode of ``igb_uio`` or ``vfio``. Because the errata of X550 states
+that the Interrupt Status bit is not implemented. The errata is the item #22
+from `X550 spec update <https://www.intel.com/content/dam/www/public/us/en/
+documents/specification-updates/ethernet-x550-spec-update.pdf>`_
+
+Implication
+^^^^^^^^^^^
+When using ``uio_pci_generic`` module or using legacy interrupt mode of
+``igb_uio`` or ``vfio``, the Interrupt Status bit would be checked if the
+interrupt is coming. Since the bit is not implemented in X550, the irq cannot
+be handled correctly and cannot report the event fd to DPDK apps. Then apps
+cannot get interrupts and ``dmesg`` will show messages like ``irq #No.: ``
+``nobody cared.``
+
+Workaround
+^^^^^^^^^^
+Do not bind the ``uio_pci_generic`` module in X550 NICs.
+Do not bind ``igb_uio`` with legacy mode in X550 NICs.
+Before binding ``vfio`` with legacy mode in X550 NICs, use ``modprobe vfio ``
+``nointxmask=1`` to load ``vfio`` module if the intx is not shared with other
+devices.
 
 Inline crypto processing support
 --------------------------------
-- 
2.7.4

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH v4] doc: add known issue about legacy intr mode for ixgbe
  2018-10-15  4:36 ` [dpdk-dev] [PATCH v4] " Xiaoyun Li
@ 2018-10-15 16:14   ` Zhang, Qi Z
  0 siblings, 0 replies; 9+ messages in thread
From: Zhang, Qi Z @ 2018-10-15 16:14 UTC (permalink / raw)
  To: Li, Xiaoyun, Xing, Beilei, dev, Lu, Wenzhuo, Wu, Jingjing



> -----Original Message-----
> From: Li, Xiaoyun
> Sent: Sunday, October 14, 2018 9:37 PM
> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> dev@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>
> Cc: Li, Xiaoyun <xiaoyun.li@intel.com>
> Subject: [PATCH v4] doc: add known issue about legacy intr mode for ixgbe
> 
> When using uio_pci_generic module or using legacy interrupt mode of
> igb_uio or vfio, X550 cannot get interrupts. Because the Interrupt Status bit is
> not implemented, then the irq cannot be handled correctly and cannot
> report the event fd to DPDK apps.
> 
> Add this hw limitation and details into ixgbe known issue.
> 
> Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-10-15 16:14 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-27  9:16 [dpdk-dev] [PATCH] doc: add known issue about legacy intr mode for ixgbe Xiaoyun Li
2018-09-30  2:24 ` Zhang, Qi Z
2018-09-30  2:46   ` Li, Xiaoyun
2018-09-30  2:48 ` [dpdk-dev] [PATCH v2] " Xiaoyun Li
2018-09-30  2:53 ` [dpdk-dev] [PATCH v3] " Xiaoyun Li
2018-10-03 13:29   ` Zhang, Qi Z
2018-10-15  3:00     ` Li, Xiaoyun
2018-10-15  4:36 ` [dpdk-dev] [PATCH v4] " Xiaoyun Li
2018-10-15 16:14   ` Zhang, Qi Z

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).