[v4] net/ixgbe: fix Rx/Tx queue interrupt for X552/557 device

Message ID 20190904033147.55297-1-junyux.jiang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: xiaolong ye
Headers
Series [v4] net/ixgbe: fix Rx/Tx queue interrupt for X552/557 device |

Checks

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

Commit Message

Junyu Jiang Sept. 4, 2019, 3:31 a.m. UTC
  Interrupt mode is not working on X552/557 device because
this device doesn't enable the queue interrupt mapping,
this patch fixed the issue.

Fixes: d2e72774e58c ("ixgbe/base: support X550")
Cc: stable@dpdk.org

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

Comments

Qiming Yang Sept. 5, 2019, 6:56 a.m. UTC | #1
> -----Original Message-----
> From: Jiang, JunyuX
> Sent: Wednesday, September 4, 2019 11:32 AM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Yang, Qiming
> <qiming.yang@intel.com>; Jiang, JunyuX <junyux.jiang@intel.com>;
> stable@dpdk.org
> Subject: [PATCH v4] net/ixgbe: fix Rx/Tx queue interrupt for X552/557 device
> 
> Interrupt mode is not working on X552/557 device because this device
> doesn't enable the queue interrupt mapping, this patch fixed the issue.
> 
> Fixes: d2e72774e58c ("ixgbe/base: support X550")
> Cc: stable@dpdk.org
> 
> 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

Acked-by: Qiming Yang <qiming.yang@intel.com>
  
Xiaolong Ye Sept. 5, 2019, 8:26 a.m. UTC | #2
On 09/04, Jiang JunyuX wrote:
>Interrupt mode is not working on X552/557 device because
>this device doesn't enable the queue interrupt mapping,
>this patch fixed the issue.
>
>Fixes: d2e72774e58c ("ixgbe/base: support X550")
>Cc: stable@dpdk.org
>
>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
>

Applied to dpdk-next-net-intel with Qiming's ack.
  

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: