[v2] net/ixgbe: fix Rx/Tx queue interrupt for X552/557 devices

Message ID 20190827065758.12152-1-junyux.jiang@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series [v2] net/ixgbe: fix Rx/Tx queue interrupt for X552/557 devices |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-Compile-Testing success Compile Testing PASS
ci/intel-Performance success Performance Testing PASS
ci/mellanox-Performance success Performance Testing PASS

Commit Message

Junyu Jiang Aug. 27, 2019, 6:57 a.m. UTC
  X552/557 devices do not enable the queue interrupt mapping,
this patch fix the issue.

Fixes: d2e72774e58c ("ixgbe/base: support X550")

Signed-off-by: Jiang JunyuX <junyux.jiang@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Xiaolong Ye Aug. 27, 2019, 8:07 a.m. UTC | #1
Hi, 

On 08/27, Jiang JunyuX wrote:
>X552/557 devices do not enable the queue interrupt mapping,
>this patch fix the issue.

Could you elaborate more about the issue that this patch trying to solve?

>
>Fixes: d2e72774e58c ("ixgbe/base: support X550")

Please also cc stable@dpdk.org for a fix patch.

Thanks,
Xiaolong

>
>Signed-off-by: Jiang JunyuX <junyux.jiang@intel.com>
>---
> drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
>index 03fc1f717..e36e1c58e 100644
>--- a/drivers/net/ixgbe/ixgbe_ethdev.c
>+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>@@ -5896,7 +5896,8 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
> 		IXGBE_WRITE_REG(hw, IXGBE_IVAR(idx), tmp);
> 	} else if ((hw->mac.type == ixgbe_mac_82599EB) ||
> 			(hw->mac.type == ixgbe_mac_X540) ||
>-			(hw->mac.type == ixgbe_mac_X550)) {
>+			(hw->mac.type == ixgbe_mac_X550) ||
>+			(hw->mac.type == ixgbe_mac_X550EM_x)) {
> 		if (direction == -1) {
> 			/* other causes */
> 			idx = ((queue & 1) * 8);
>@@ -6026,6 +6027,7 @@ ixgbe_configure_msix(struct rte_eth_dev *dev)
> 		case ixgbe_mac_82599EB:
> 		case ixgbe_mac_X540:
> 		case ixgbe_mac_X550:
>+		case ixgbe_mac_X550EM_x:
> 			ixgbe_set_ivar_map(hw, -1, 1, IXGBE_MISC_VEC_ID);
> 			break;
> 		default:
>-- 
>2.17.1
>
  
Junyu Jiang Aug. 27, 2019, 11:12 a.m. UTC | #2
Hi,

> Could you elaborate more about the issue that this patch trying to solve?
this issue is:start l3fwd-power with  pf port0 bind  to vfio-pci,there was no response when send packets to l3fwd-power in x552/x557.

> -----Original Message-----
> From: Ye, Xiaolong
> Sent: Tuesday, August 27, 2019 4:08 PM
> To: Jiang, JunyuX <junyux.jiang@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix Rx/Tx queue interrupt for
> X552/557 devices
> 
> Hi,
> 
> On 08/27, Jiang JunyuX wrote:
> >X552/557 devices do not enable the queue interrupt mapping, this patch
> >fix the issue.
> 
> Could you elaborate more about the issue that this patch trying to solve?
> 
> >
> >Fixes: d2e72774e58c ("ixgbe/base: support X550")
> 
> Please also cc stable@dpdk.org for a fix patch.
> 
> Thanks,
> Xiaolong
> 
> >
> >Signed-off-by: Jiang JunyuX <junyux.jiang@intel.com>
> >---
> > drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> >diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> >b/drivers/net/ixgbe/ixgbe_ethdev.c
> >index 03fc1f717..e36e1c58e 100644
> >--- a/drivers/net/ixgbe/ixgbe_ethdev.c
> >+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> >@@ -5896,7 +5896,8 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t
> direction,
> > 		IXGBE_WRITE_REG(hw, IXGBE_IVAR(idx), tmp);
> > 	} else if ((hw->mac.type == ixgbe_mac_82599EB) ||
> > 			(hw->mac.type == ixgbe_mac_X540) ||
> >-			(hw->mac.type == ixgbe_mac_X550)) {
> >+			(hw->mac.type == ixgbe_mac_X550) ||
> >+			(hw->mac.type == ixgbe_mac_X550EM_x)) {
> > 		if (direction == -1) {
> > 			/* other causes */
> > 			idx = ((queue & 1) * 8);
> >@@ -6026,6 +6027,7 @@ ixgbe_configure_msix(struct rte_eth_dev *dev)
> > 		case ixgbe_mac_82599EB:
> > 		case ixgbe_mac_X540:
> > 		case ixgbe_mac_X550:
> >+		case ixgbe_mac_X550EM_x:
> > 			ixgbe_set_ivar_map(hw, -1, 1, IXGBE_MISC_VEC_ID);
> > 			break;
> > 		default:
> >--
> >2.17.1
> >
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 03fc1f717..e36e1c58e 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -5896,7 +5896,8 @@  ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
 		IXGBE_WRITE_REG(hw, IXGBE_IVAR(idx), tmp);
 	} else if ((hw->mac.type == ixgbe_mac_82599EB) ||
 			(hw->mac.type == ixgbe_mac_X540) ||
-			(hw->mac.type == ixgbe_mac_X550)) {
+			(hw->mac.type == ixgbe_mac_X550) ||
+			(hw->mac.type == ixgbe_mac_X550EM_x)) {
 		if (direction == -1) {
 			/* other causes */
 			idx = ((queue & 1) * 8);
@@ -6026,6 +6027,7 @@  ixgbe_configure_msix(struct rte_eth_dev *dev)
 		case ixgbe_mac_82599EB:
 		case ixgbe_mac_X540:
 		case ixgbe_mac_X550:
+		case ixgbe_mac_X550EM_x:
 			ixgbe_set_ivar_map(hw, -1, 1, IXGBE_MISC_VEC_ID);
 			break;
 		default: