> -----Original Message----- > From: Lu, Wenzhuo > Sent: Friday, April 01, 2016 3:09 AM > To: dev at dpdk.org > Cc: Ananyev, Konstantin > Subject: [PATCH] igb: fix i350 VF RX issue > > A problem is found on i350 VF. We found TX will happen once > per 4 packets. If only 1~3 packets are received, they will > not be forwarded. But the real problem is on RX side. The > reason is the default RX write-back threshold is changed to > 4, so every first 3 packets may be hung there. > > This patch checks the RX wthresh when setting up the RX > queue, and forces it to be 1, so every packet can be handled > immediately. > > Fixes: 4a41c17dba18 (igb: set default thresholds based on MAC type) > --- > drivers/net/e1000/igb_rxtx.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c > index 529dba4..4a987e3 100644 > --- a/drivers/net/e1000/igb_rxtx.c > +++ b/drivers/net/e1000/igb_rxtx.c > @@ -1466,7 +1466,8 @@ eth_igb_rx_queue_setup(struct rte_eth_dev *dev, > rxq->pthresh = rx_conf->rx_thresh.pthresh; > rxq->hthresh = rx_conf->rx_thresh.hthresh; > rxq->wthresh = rx_conf->rx_thresh.wthresh; > - if (rxq->wthresh > 0 && hw->mac.type == e1000_82576) > + if (rxq->wthresh > 0 && > + (hw->mac.type == e1000_82576 || hw->mac.type == e1000_vfadapt_i350)) > rxq->wthresh = 1; > rxq->drop_en = rx_conf->rx_drop_en; > rxq->rx_free_thresh = rx_conf->rx_free_thresh; > --
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com> > 1.9.3