igb: workaround errata with wthresh on 82576
The 82576 has known issues which require the write threshold to be set to 1. See: http://download.intel.com/design/network/specupdt/82576_SPECUPDATE.pdf If not then single packets will hang in transmit ring until more arrive. Simple tests like ping will fail. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Reviewed-by: Vincent Jardin <vincent.jardin@6wind.com>
This commit is contained in:
parent
9b2027a70b
commit
7e9e49feea
@ -1227,6 +1227,8 @@ eth_igb_tx_queue_setup(struct rte_eth_dev *dev,
|
||||
txq->pthresh = tx_conf->tx_thresh.pthresh;
|
||||
txq->hthresh = tx_conf->tx_thresh.hthresh;
|
||||
txq->wthresh = tx_conf->tx_thresh.wthresh;
|
||||
if (txq->wthresh > 0 && hw->mac.type == e1000_82576)
|
||||
txq->wthresh = 1;
|
||||
txq->queue_id = queue_idx;
|
||||
txq->port_id = dev->data->port_id;
|
||||
|
||||
@ -1341,6 +1343,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)
|
||||
rxq->wthresh = 1;
|
||||
rxq->drop_en = rx_conf->rx_drop_en;
|
||||
rxq->rx_free_thresh = rx_conf->rx_free_thresh;
|
||||
rxq->queue_id = queue_idx;
|
||||
|
Loading…
x
Reference in New Issue
Block a user