فهرست منبع

igb: Use rx/tx_itr_setting when setting up initial value of itr

It turns out that the InterruptThrottleRate module parameter was only
having the effect of locking the ITR at the starting ITR value. This was
because the values stored in rx_itr_setting and tx_itr_setting were being
ignored when configuring the initial itr_val of the q_vector.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Alexander Duyck 12 سال پیش
والد
کامیت
4e22766758
1فایلهای تغییر یافته به همراه11 افزوده شده و 0 حذف شده
  1. 11 0
      drivers/net/ethernet/intel/igb/igb_main.c

+ 11 - 0
drivers/net/ethernet/intel/igb/igb_main.c

@@ -1179,6 +1179,17 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter,
 	/* initialize pointer to rings */
 	/* initialize pointer to rings */
 	ring = q_vector->ring;
 	ring = q_vector->ring;
 
 
+	/* intialize ITR */
+	if (rxr_count) {
+		/* rx or rx/tx vector */
+		if (!adapter->rx_itr_setting || adapter->rx_itr_setting > 3)
+			q_vector->itr_val = adapter->rx_itr_setting;
+	} else {
+		/* tx only vector */
+		if (!adapter->tx_itr_setting || adapter->tx_itr_setting > 3)
+			q_vector->itr_val = adapter->tx_itr_setting;
+	}
+
 	if (txr_count) {
 	if (txr_count) {
 		/* assign generic ring traits */
 		/* assign generic ring traits */
 		ring->dev = &adapter->pdev->dev;
 		ring->dev = &adapter->pdev->dev;