aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com>2016-10-21 04:43:42 -0400
committerDavid S. Miller <davem@davemloft.net>2016-10-22 17:08:07 -0400
commit0e191827383a6503a3bc547e63c74ff093f450f5 (patch)
tree90e5ea359cb9cdebe3cd56ecf2dff09f41dd2e18
parent837d4eb6ed7cb0341079fac97e3037df6bef7482 (diff)
qed*: Reduce the memory footprint for Rx path
With the current default values for Rx path i.e., 8 queues of 8Kb entries each with 4Kb size, interface will consume 256Mb for Rx. The default values causing the driver probe to fail when the system memory is low. Based on the perforamnce results, rx-ring count value of 1Kb gives the comparable performance with Rx coalesce timeout of 12 seconds. Updating the default values. Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com> Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_main.c1
-rw-r--r--drivers/net/ethernet/qlogic/qede/qede.h2
-rw-r--r--include/linux/qed/qed_if.h1
3 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
index 8dc3f4670f64..c418360ba02a 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -878,6 +878,7 @@ static int qed_slowpath_start(struct qed_dev *cdev,
878 } 878 }
879 } 879 }
880 880
881 cdev->rx_coalesce_usecs = QED_DEFAULT_RX_USECS;
881 rc = qed_nic_setup(cdev); 882 rc = qed_nic_setup(cdev);
882 if (rc) 883 if (rc)
883 goto err; 884 goto err;
diff --git a/drivers/net/ethernet/qlogic/qede/qede.h b/drivers/net/ethernet/qlogic/qede/qede.h
index d6a4a9a5eb4d..974689a13337 100644
--- a/drivers/net/ethernet/qlogic/qede/qede.h
+++ b/drivers/net/ethernet/qlogic/qede/qede.h
@@ -354,7 +354,7 @@ void qede_update_rx_prod(struct qede_dev *edev, struct qede_rx_queue *rxq);
354#define RX_RING_SIZE ((u16)BIT(RX_RING_SIZE_POW)) 354#define RX_RING_SIZE ((u16)BIT(RX_RING_SIZE_POW))
355#define NUM_RX_BDS_MAX (RX_RING_SIZE - 1) 355#define NUM_RX_BDS_MAX (RX_RING_SIZE - 1)
356#define NUM_RX_BDS_MIN 128 356#define NUM_RX_BDS_MIN 128
357#define NUM_RX_BDS_DEF NUM_RX_BDS_MAX 357#define NUM_RX_BDS_DEF ((u16)BIT(10) - 1)
358 358
359#define TX_RING_SIZE_POW 13 359#define TX_RING_SIZE_POW 13
360#define TX_RING_SIZE ((u16)BIT(TX_RING_SIZE_POW)) 360#define TX_RING_SIZE ((u16)BIT(TX_RING_SIZE_POW))
diff --git a/include/linux/qed/qed_if.h b/include/linux/qed/qed_if.h
index f9ae903bbb84..8978a60371f4 100644
--- a/include/linux/qed/qed_if.h
+++ b/include/linux/qed/qed_if.h
@@ -146,6 +146,7 @@ enum qed_led_mode {
146#define DIRECT_REG_RD(reg_addr) readl((void __iomem *)(reg_addr)) 146#define DIRECT_REG_RD(reg_addr) readl((void __iomem *)(reg_addr))
147 147
148#define QED_COALESCE_MAX 0xFF 148#define QED_COALESCE_MAX 0xFF
149#define QED_DEFAULT_RX_USECS 12
149 150
150/* forward */ 151/* forward */
151struct qed_dev; 152struct qed_dev;