From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wenzhuo Lu Subject: [PATCH] igb: fix i350 VF RX issue Date: Fri, 1 Apr 2016 10:08:54 +0800 Message-ID: <1459476534-7624-1-git-send-email-wenzhuo.lu@intel.com> Cc: konstantin.ananyev@intel.com To: dev@dpdk.org Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 5EA4F9A92 for ; Fri, 1 Apr 2016 04:09:00 +0200 (CEST) List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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; -- 1.9.3