All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net/ixgbe: fix RX queue blocking issue
@ 2017-02-22  2:59 Wenzhuo Lu
  2017-03-05 22:24 ` [dpdk-stable] " Ferruh Yigit
  0 siblings, 1 reply; 2+ messages in thread
From: Wenzhuo Lu @ 2017-02-22  2:59 UTC (permalink / raw)
  To: dev; +Cc: Wenzhuo Lu, stable

In the IOV scenario, multi RX queues can be assigned
to one VF. If the dropping is not enabled, when no
descriptors are available for one queue, this queue
can block others.

Fixes: 00e30184daa0 ("ixgbe: add PF support")
CC: stable@dpdk.org

Suggested-by: Liang-min Wang <liang-min.wang@intel.com>
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 drivers/net/ixgbe/ixgbe_pf.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
index 4715045..d88832e 100644
--- a/drivers/net/ixgbe/ixgbe_pf.c
+++ b/drivers/net/ixgbe/ixgbe_pf.c
@@ -397,15 +397,27 @@ int ixgbe_pf_host_configure(struct rte_eth_dev *eth_dev)
 	uint32_t reg_offset, vf_shift;
 	const uint8_t VFRE_SHIFT = 5;  /* VFRE 32 bits per slot */
 	const uint8_t VFRE_MASK = (uint8_t)((1U << VFRE_SHIFT) - 1);
+	uint8_t  nb_q_per_pool;
+	int i;
 
 	vf_shift = vf & VFRE_MASK;
 	reg_offset = (vf >> VFRE_SHIFT) > 0 ? 1 : 0;
 
-	/* enable transmit and receive for vf */
+	/* enable transmit for vf */
 	reg = IXGBE_READ_REG(hw, IXGBE_VFTE(reg_offset));
 	reg |= (reg | (1 << vf_shift));
 	IXGBE_WRITE_REG(hw, IXGBE_VFTE(reg_offset), reg);
 
+	/* enable all queue drop for IOV */
+	nb_q_per_pool = RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool;
+	for (i = vf * nb_q_per_pool; i < (vf + 1) * nb_q_per_pool; i++) {
+		IXGBE_WRITE_FLUSH(hw);
+		reg = IXGBE_QDE_ENABLE | IXGBE_QDE_WRITE;
+		reg |= i << IXGBE_QDE_IDX_SHIFT;
+		IXGBE_WRITE_REG(hw, IXGBE_QDE, reg);
+	}
+
+	/* enable receive for vf */
 	reg = IXGBE_READ_REG(hw, IXGBE_VFRE(reg_offset));
 	reg |= (reg | (1 << vf_shift));
 	IXGBE_WRITE_REG(hw, IXGBE_VFRE(reg_offset), reg);
-- 
1.9.3

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

* Re: [dpdk-stable] [PATCH] net/ixgbe: fix RX queue blocking issue
  2017-02-22  2:59 [PATCH] net/ixgbe: fix RX queue blocking issue Wenzhuo Lu
@ 2017-03-05 22:24 ` Ferruh Yigit
  0 siblings, 0 replies; 2+ messages in thread
From: Ferruh Yigit @ 2017-03-05 22:24 UTC (permalink / raw)
  To: Wenzhuo Lu, dev; +Cc: stable

On 2/22/2017 2:59 AM, Wenzhuo Lu wrote:
> In the IOV scenario, multi RX queues can be assigned
> to one VF. If the dropping is not enabled, when no
> descriptors are available for one queue, this queue
> can block others.
> 
> Fixes: 00e30184daa0 ("ixgbe: add PF support")
> CC: stable@dpdk.org
> 
> Suggested-by: Liang-min Wang <liang-min.wang@intel.com>
> Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

Applied to dpdk-next-net/master, thanks.

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

end of thread, other threads:[~2017-03-05 22:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-22  2:59 [PATCH] net/ixgbe: fix RX queue blocking issue Wenzhuo Lu
2017-03-05 22:24 ` [dpdk-stable] " Ferruh Yigit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.