netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs
@ 2024-02-20 21:45 Maciej Fijalkowski
  2024-02-20 21:45 ` [PATCH iwl-net 1/3] ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able Maciej Fijalkowski
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Maciej Fijalkowski @ 2024-02-20 21:45 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, anthony.l.nguyen, magnus.karlsson, Maciej Fijalkowski

Hi,

It started out as an issue on ixgbe reported by Pavel [0] which first
patch is supposed to fix, but apparently i40e and ice have queue pair
disabling flow a bit out of order, so I addressed them as well. More
info is included in commit messages.

FWIW we are talking here about AF_XDP ZC when xsk_pool is sent down to
driver. Typically these routines are executed when there is already XDP
program running on interface.

Thanks!

[0]: https://lore.kernel.org/netdev/CAJEV1ijxNyPTwASJER1bcZzS9nMoZJqfR86nu_3jFFVXzZQ4NA@mail.gmail.com/

Maciej Fijalkowski (3):
  ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able
  i40e: disable NAPI right after disabling irqs when handling xsk_pool
  ice: reorder disabling IRQ and NAPI in ice_qp_dis

 drivers/net/ethernet/intel/i40e/i40e_main.c   |  2 +-
 drivers/net/ethernet/intel/ice/ice_xsk.c      |  9 +--
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 56 ++++++++++++++++---
 3 files changed, 55 insertions(+), 12 deletions(-)

-- 
2.34.1


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

* [PATCH iwl-net 1/3] ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able
  2024-02-20 21:45 [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Maciej Fijalkowski
@ 2024-02-20 21:45 ` Maciej Fijalkowski
  2024-03-01 13:01   ` [Intel-wired-lan] [PATCH iwl-net 1/3] ixgbe: {dis, en}able irqs in ixgbe_txrx_ring_{dis, en}able Rout, ChandanX
  2024-02-20 21:45 ` [PATCH iwl-net 2/3] i40e: disable NAPI right after disabling irqs when handling xsk_pool Maciej Fijalkowski
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Maciej Fijalkowski @ 2024-02-20 21:45 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, anthony.l.nguyen, magnus.karlsson, Maciej Fijalkowski,
	Pavel Vazharov

Currently routines that are supposed to toggle state of ring pair do not
take care of associated interrupt with queue vector that these rings
belong to. This causes funky issues such as dead interface due to irq
misconfiguration, as per Pavel's report from Closes: tag.

Add a function responsible for disabling single IRQ in EIMC register and
call this as a very first thing when disabling ring pair during xsk_pool
setup. For enable let's reuse ixgbe_irq_enable_queues(). Besides this,
disable/enable NAPI as first/last thing when dealing with closing or
opening ring pair that xsk_pool is being configured on.

Reported-by: Pavel Vazharov <pavel@x3me.net>
Closes: https://lore.kernel.org/netdev/CAJEV1ijxNyPTwASJER1bcZzS9nMoZJqfR86nu_3jFFVXzZQ4NA@mail.gmail.com/
Fixes: 024aa5800f32 ("ixgbe: added Rx/Tx ring disable/enable functions")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 56 ++++++++++++++++---
 1 file changed, 49 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index bd541527c8c7..99876b765b08 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -2939,8 +2939,8 @@ static void ixgbe_check_lsc(struct ixgbe_adapter *adapter)
 static inline void ixgbe_irq_enable_queues(struct ixgbe_adapter *adapter,
 					   u64 qmask)
 {
-	u32 mask;
 	struct ixgbe_hw *hw = &adapter->hw;
+	u32 mask;
 
 	switch (hw->mac.type) {
 	case ixgbe_mac_82598EB:
@@ -10524,6 +10524,44 @@ static void ixgbe_reset_rxr_stats(struct ixgbe_ring *rx_ring)
 	memset(&rx_ring->rx_stats, 0, sizeof(rx_ring->rx_stats));
 }
 
+/**
+ * ixgbe_irq_disable_single - Disable single IRQ vector
+ * @adapter: adapter structure
+ * @ring: ring index
+ **/
+static void ixgbe_irq_disable_single(struct ixgbe_adapter *adapter, u32 ring)
+{
+	struct ixgbe_hw *hw = &adapter->hw;
+	u64 qmask = BIT_ULL(ring);
+	u32 mask;
+
+	switch (adapter->hw.mac.type) {
+	case ixgbe_mac_82598EB:
+		mask = qmask & IXGBE_EIMC_RTX_QUEUE;
+		IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, mask);
+		break;
+	case ixgbe_mac_82599EB:
+	case ixgbe_mac_X540:
+	case ixgbe_mac_X550:
+	case ixgbe_mac_X550EM_x:
+	case ixgbe_mac_x550em_a:
+		mask = (qmask & 0xFFFFFFFF);
+		if (mask)
+			IXGBE_WRITE_REG(hw, IXGBE_EIMS_EX(0), mask);
+		mask = (qmask >> 32);
+		if (mask)
+			IXGBE_WRITE_REG(hw, IXGBE_EIMS_EX(1), mask);
+		break;
+	default:
+		break;
+	}
+	IXGBE_WRITE_FLUSH(&adapter->hw);
+	if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED)
+		synchronize_irq(adapter->msix_entries[ring].vector);
+	else
+		synchronize_irq(adapter->pdev->irq);
+}
+
 /**
  * ixgbe_txrx_ring_disable - Disable Rx/Tx/XDP Tx rings
  * @adapter: adapter structure
@@ -10540,6 +10578,11 @@ void ixgbe_txrx_ring_disable(struct ixgbe_adapter *adapter, int ring)
 	tx_ring = adapter->tx_ring[ring];
 	xdp_ring = adapter->xdp_ring[ring];
 
+	ixgbe_irq_disable_single(adapter, ring);
+
+	/* Rx/Tx/XDP Tx share the same napi context. */
+	napi_disable(&rx_ring->q_vector->napi);
+
 	ixgbe_disable_txr(adapter, tx_ring);
 	if (xdp_ring)
 		ixgbe_disable_txr(adapter, xdp_ring);
@@ -10548,9 +10591,6 @@ void ixgbe_txrx_ring_disable(struct ixgbe_adapter *adapter, int ring)
 	if (xdp_ring)
 		synchronize_rcu();
 
-	/* Rx/Tx/XDP Tx share the same napi context. */
-	napi_disable(&rx_ring->q_vector->napi);
-
 	ixgbe_clean_tx_ring(tx_ring);
 	if (xdp_ring)
 		ixgbe_clean_tx_ring(xdp_ring);
@@ -10578,9 +10618,6 @@ void ixgbe_txrx_ring_enable(struct ixgbe_adapter *adapter, int ring)
 	tx_ring = adapter->tx_ring[ring];
 	xdp_ring = adapter->xdp_ring[ring];
 
-	/* Rx/Tx/XDP Tx share the same napi context. */
-	napi_enable(&rx_ring->q_vector->napi);
-
 	ixgbe_configure_tx_ring(adapter, tx_ring);
 	if (xdp_ring)
 		ixgbe_configure_tx_ring(adapter, xdp_ring);
@@ -10589,6 +10626,11 @@ void ixgbe_txrx_ring_enable(struct ixgbe_adapter *adapter, int ring)
 	clear_bit(__IXGBE_TX_DISABLED, &tx_ring->state);
 	if (xdp_ring)
 		clear_bit(__IXGBE_TX_DISABLED, &xdp_ring->state);
+
+	/* Rx/Tx/XDP Tx share the same napi context. */
+	napi_enable(&rx_ring->q_vector->napi);
+	ixgbe_irq_enable_queues(adapter, BIT_ULL(ring));
+	IXGBE_WRITE_FLUSH(&adapter->hw);
 }
 
 /**
-- 
2.34.1


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

* [PATCH iwl-net 2/3] i40e: disable NAPI right after disabling irqs when handling xsk_pool
  2024-02-20 21:45 [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Maciej Fijalkowski
  2024-02-20 21:45 ` [PATCH iwl-net 1/3] ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able Maciej Fijalkowski
@ 2024-02-20 21:45 ` Maciej Fijalkowski
  2024-03-01  2:23   ` [Intel-wired-lan] " Rout, ChandanX
  2024-02-20 21:45 ` [PATCH iwl-net 3/3] ice: reorder disabling IRQ and NAPI in ice_qp_dis Maciej Fijalkowski
  2024-02-22  8:32 ` [Intel-wired-lan] [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Magnus Karlsson
  3 siblings, 1 reply; 8+ messages in thread
From: Maciej Fijalkowski @ 2024-02-20 21:45 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, anthony.l.nguyen, magnus.karlsson, Maciej Fijalkowski

Disable NAPI before shutting down queues that this particular NAPI
contains so that the order of actions in i40e_queue_pair_disable()
mirrors what we do in i40e_queue_pair_enable().

Fixes: 123cecd427b6 ("i40e: added queue pair disable/enable functions")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 6e7fd473abfd..eab2d4c3a5fc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -13564,9 +13564,9 @@ int i40e_queue_pair_disable(struct i40e_vsi *vsi, int queue_pair)
 		return err;
 
 	i40e_queue_pair_disable_irq(vsi, queue_pair);
+	i40e_queue_pair_toggle_napi(vsi, queue_pair, false /* off */);
 	err = i40e_queue_pair_toggle_rings(vsi, queue_pair, false /* off */);
 	i40e_clean_rx_ring(vsi->rx_rings[queue_pair]);
-	i40e_queue_pair_toggle_napi(vsi, queue_pair, false /* off */);
 	i40e_queue_pair_clean_rings(vsi, queue_pair);
 	i40e_queue_pair_reset_stats(vsi, queue_pair);
 
-- 
2.34.1


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

* [PATCH iwl-net 3/3] ice: reorder disabling IRQ and NAPI in ice_qp_dis
  2024-02-20 21:45 [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Maciej Fijalkowski
  2024-02-20 21:45 ` [PATCH iwl-net 1/3] ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able Maciej Fijalkowski
  2024-02-20 21:45 ` [PATCH iwl-net 2/3] i40e: disable NAPI right after disabling irqs when handling xsk_pool Maciej Fijalkowski
@ 2024-02-20 21:45 ` Maciej Fijalkowski
  2024-03-01  2:21   ` [Intel-wired-lan] " Rout, ChandanX
  2024-02-22  8:32 ` [Intel-wired-lan] [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Magnus Karlsson
  3 siblings, 1 reply; 8+ messages in thread
From: Maciej Fijalkowski @ 2024-02-20 21:45 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, anthony.l.nguyen, magnus.karlsson, Maciej Fijalkowski

ice_qp_dis() currently does things in very mixed way. Tx is stopped
before disabling IRQ on related queue vector, then it takes care of
disabling Rx and finally NAPI is disabled.

Let us start with disabling IRQs in the first place followed by turning
off NAPI. Then it is safe to handle queues.

One subtle change on top of that is that even though ice_qp_ena() looks
more sane, clear ICE_CFG_BUSY as the last thing there.

Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
---
 drivers/net/ethernet/intel/ice/ice_xsk.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c
index 8b81a1677045..2eecd0f39aa6 100644
--- a/drivers/net/ethernet/intel/ice/ice_xsk.c
+++ b/drivers/net/ethernet/intel/ice/ice_xsk.c
@@ -179,6 +179,10 @@ static int ice_qp_dis(struct ice_vsi *vsi, u16 q_idx)
 			return -EBUSY;
 		usleep_range(1000, 2000);
 	}
+
+	ice_qvec_dis_irq(vsi, rx_ring, q_vector);
+	ice_qvec_toggle_napi(vsi, q_vector, false);
+
 	netif_tx_stop_queue(netdev_get_tx_queue(vsi->netdev, q_idx));
 
 	ice_fill_txq_meta(vsi, tx_ring, &txq_meta);
@@ -195,13 +199,10 @@ static int ice_qp_dis(struct ice_vsi *vsi, u16 q_idx)
 		if (err)
 			return err;
 	}
-	ice_qvec_dis_irq(vsi, rx_ring, q_vector);
-
 	err = ice_vsi_ctrl_one_rx_ring(vsi, false, q_idx, true);
 	if (err)
 		return err;
 
-	ice_qvec_toggle_napi(vsi, q_vector, false);
 	ice_qp_clean_rings(vsi, q_idx);
 	ice_qp_reset_stats(vsi, q_idx);
 
@@ -259,11 +260,11 @@ static int ice_qp_ena(struct ice_vsi *vsi, u16 q_idx)
 	if (err)
 		return err;
 
-	clear_bit(ICE_CFG_BUSY, vsi->state);
 	ice_qvec_toggle_napi(vsi, q_vector, true);
 	ice_qvec_ena_irq(vsi, q_vector);
 
 	netif_tx_start_queue(netdev_get_tx_queue(vsi->netdev, q_idx));
+	clear_bit(ICE_CFG_BUSY, vsi->state);
 
 	return 0;
 }
-- 
2.34.1


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

* Re: [Intel-wired-lan] [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs
  2024-02-20 21:45 [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Maciej Fijalkowski
                   ` (2 preceding siblings ...)
  2024-02-20 21:45 ` [PATCH iwl-net 3/3] ice: reorder disabling IRQ and NAPI in ice_qp_dis Maciej Fijalkowski
@ 2024-02-22  8:32 ` Magnus Karlsson
  3 siblings, 0 replies; 8+ messages in thread
From: Magnus Karlsson @ 2024-02-22  8:32 UTC (permalink / raw)
  To: Maciej Fijalkowski
  Cc: intel-wired-lan, netdev, anthony.l.nguyen, magnus.karlsson

On Tue, 20 Feb 2024 at 22:46, Maciej Fijalkowski
<maciej.fijalkowski@intel.com> wrote:
>
> Hi,
>
> It started out as an issue on ixgbe reported by Pavel [0] which first
> patch is supposed to fix, but apparently i40e and ice have queue pair
> disabling flow a bit out of order, so I addressed them as well. More
> info is included in commit messages.
>
> FWIW we are talking here about AF_XDP ZC when xsk_pool is sent down to
> driver. Typically these routines are executed when there is already XDP
> program running on interface.
>
> Thanks!
>
> [0]: https://lore.kernel.org/netdev/CAJEV1ijxNyPTwASJER1bcZzS9nMoZJqfR86nu_3jFFVXzZQ4NA@mail.gmail.com/

Thank you for this fix Maciej.

Acked-by: Magnus Karlsson <magnus.karlsson@intel.com>

> Maciej Fijalkowski (3):
>   ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able
>   i40e: disable NAPI right after disabling irqs when handling xsk_pool
>   ice: reorder disabling IRQ and NAPI in ice_qp_dis
>
>  drivers/net/ethernet/intel/i40e/i40e_main.c   |  2 +-
>  drivers/net/ethernet/intel/ice/ice_xsk.c      |  9 +--
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 56 ++++++++++++++++---
>  3 files changed, 55 insertions(+), 12 deletions(-)
>
> --
> 2.34.1
>

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

* RE: [Intel-wired-lan] [PATCH iwl-net 3/3] ice: reorder disabling IRQ and NAPI in ice_qp_dis
  2024-02-20 21:45 ` [PATCH iwl-net 3/3] ice: reorder disabling IRQ and NAPI in ice_qp_dis Maciej Fijalkowski
@ 2024-03-01  2:21   ` Rout, ChandanX
  0 siblings, 0 replies; 8+ messages in thread
From: Rout, ChandanX @ 2024-03-01  2:21 UTC (permalink / raw)
  To: Fijalkowski, Maciej, intel-wired-lan@lists.osuosl.org
  Cc: netdev@vger.kernel.org, Nguyen, Anthony L, Karlsson, Magnus,
	Kuruvinakunnel, George, Nagraj, Shravan, Pandey, Atul



>-----Original Message-----
>From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
>Fijalkowski, Maciej
>Sent: Wednesday, February 21, 2024 3:16 AM
>To: intel-wired-lan@lists.osuosl.org
>Cc: netdev@vger.kernel.org; Fijalkowski, Maciej
><maciej.fijalkowski@intel.com>; Nguyen, Anthony L
><anthony.l.nguyen@intel.com>; Karlsson, Magnus
><magnus.karlsson@intel.com>
>Subject: [Intel-wired-lan] [PATCH iwl-net 3/3] ice: reorder disabling IRQ and
>NAPI in ice_qp_dis
>
>ice_qp_dis() currently does things in very mixed way. Tx is stopped before
>disabling IRQ on related queue vector, then it takes care of disabling Rx and
>finally NAPI is disabled.
>
>Let us start with disabling IRQs in the first place followed by turning off NAPI.
>Then it is safe to handle queues.
>
>One subtle change on top of that is that even though ice_qp_ena() looks more
>sane, clear ICE_CFG_BUSY as the last thing there.
>
>Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
>Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>---
> drivers/net/ethernet/intel/ice/ice_xsk.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>

Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)

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

* RE: [Intel-wired-lan] [PATCH iwl-net 2/3] i40e: disable NAPI right after disabling irqs when handling xsk_pool
  2024-02-20 21:45 ` [PATCH iwl-net 2/3] i40e: disable NAPI right after disabling irqs when handling xsk_pool Maciej Fijalkowski
@ 2024-03-01  2:23   ` Rout, ChandanX
  0 siblings, 0 replies; 8+ messages in thread
From: Rout, ChandanX @ 2024-03-01  2:23 UTC (permalink / raw)
  To: Fijalkowski, Maciej, intel-wired-lan@lists.osuosl.org
  Cc: netdev@vger.kernel.org, Nguyen, Anthony L, Karlsson, Magnus,
	Kuruvinakunnel, George, Nagraj, Shravan, Pandey, Atul



>-----Original Message-----
>From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
>Fijalkowski, Maciej
>Sent: Wednesday, February 21, 2024 3:16 AM
>To: intel-wired-lan@lists.osuosl.org
>Cc: netdev@vger.kernel.org; Fijalkowski, Maciej
><maciej.fijalkowski@intel.com>; Nguyen, Anthony L
><anthony.l.nguyen@intel.com>; Karlsson, Magnus
><magnus.karlsson@intel.com>
>Subject: [Intel-wired-lan] [PATCH iwl-net 2/3] i40e: disable NAPI right after
>disabling irqs when handling xsk_pool
>
>Disable NAPI before shutting down queues that this particular NAPI contains so
>that the order of actions in i40e_queue_pair_disable() mirrors what we do in
>i40e_queue_pair_enable().
>
>Fixes: 123cecd427b6 ("i40e: added queue pair disable/enable functions")
>Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>---
> drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)

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

* RE: [Intel-wired-lan] [PATCH iwl-net 1/3] ixgbe: {dis, en}able irqs in ixgbe_txrx_ring_{dis, en}able
  2024-02-20 21:45 ` [PATCH iwl-net 1/3] ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able Maciej Fijalkowski
@ 2024-03-01 13:01   ` Rout, ChandanX
  0 siblings, 0 replies; 8+ messages in thread
From: Rout, ChandanX @ 2024-03-01 13:01 UTC (permalink / raw)
  To: Fijalkowski, Maciej, intel-wired-lan@lists.osuosl.org
  Cc: netdev@vger.kernel.org, Nguyen, Anthony L, Pavel Vazharov,
	Karlsson, Magnus, Kuruvinakunnel, George, Pandey, Atul,
	Nagraj, Shravan



>-----Original Message-----
>From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
>Fijalkowski, Maciej
>Sent: Wednesday, February 21, 2024 3:16 AM
>To: intel-wired-lan@lists.osuosl.org
>Cc: netdev@vger.kernel.org; Fijalkowski, Maciej
><maciej.fijalkowski@intel.com>; Nguyen, Anthony L
><anthony.l.nguyen@intel.com>; Pavel Vazharov <pavel@x3me.net>; Karlsson,
>Magnus <magnus.karlsson@intel.com>
>Subject: [Intel-wired-lan] [PATCH iwl-net 1/3] ixgbe: {dis, en}able irqs in
>ixgbe_txrx_ring_{dis, en}able
>
>Currently routines that are supposed to toggle state of ring pair do not take
>care of associated interrupt with queue vector that these rings belong to. This
>causes funky issues such as dead interface due to irq misconfiguration, as per
>Pavel's report from Closes: tag.
>
>Add a function responsible for disabling single IRQ in EIMC register and call this
>as a very first thing when disabling ring pair during xsk_pool setup. For enable
>let's reuse ixgbe_irq_enable_queues(). Besides this, disable/enable NAPI as
>first/last thing when dealing with closing or opening ring pair that xsk_pool is
>being configured on.
>
>Reported-by: Pavel Vazharov <pavel@x3me.net>
>Closes:
>https://lore.kernel.org/netdev/CAJEV1ijxNyPTwASJER1bcZzS9nMoZJqfR86nu
>_3jFFVXzZQ4NA@mail.gmail.com/
>Fixes: 024aa5800f32 ("ixgbe: added Rx/Tx ring disable/enable functions")
>Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>---
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 56 ++++++++++++++++---
> 1 file changed, 49 insertions(+), 7 deletions(-)
>

Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)

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

end of thread, other threads:[~2024-03-01 13:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-20 21:45 [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Maciej Fijalkowski
2024-02-20 21:45 ` [PATCH iwl-net 1/3] ixgbe: {dis,en}able irqs in ixgbe_txrx_ring_{dis,en}able Maciej Fijalkowski
2024-03-01 13:01   ` [Intel-wired-lan] [PATCH iwl-net 1/3] ixgbe: {dis, en}able irqs in ixgbe_txrx_ring_{dis, en}able Rout, ChandanX
2024-02-20 21:45 ` [PATCH iwl-net 2/3] i40e: disable NAPI right after disabling irqs when handling xsk_pool Maciej Fijalkowski
2024-03-01  2:23   ` [Intel-wired-lan] " Rout, ChandanX
2024-02-20 21:45 ` [PATCH iwl-net 3/3] ice: reorder disabling IRQ and NAPI in ice_qp_dis Maciej Fijalkowski
2024-03-01  2:21   ` [Intel-wired-lan] " Rout, ChandanX
2024-02-22  8:32 ` [Intel-wired-lan] [PATCH iwl-net 0/3] intel: fix routines that disable queue pairs Magnus Karlsson

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).