ice: Set minimum default Rx descriptor count to 512
authorBrett Creeley <brett.creeley@intel.com>
Tue, 16 Apr 2019 17:30:41 +0000 (10:30 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 29 May 2019 09:38:50 +0000 (02:38 -0700)
Currently we set the default number of Rx descriptors per
queue to the system's page size divided by the number of bytes per
descriptor. For 4K page size systems this is resulting in 128 Rx
descriptors per queue. This is causing more dropped packets than desired
in the default configuration. Fix this by setting the minimum default
Rx descriptor count per queue to 512.

Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ice/ice.h

index b5990ba0ee4c0e3c7ae8afe3899a28bddcb11d39..0555d09614d821f99c3b21edae98f9c45769261a 100644 (file)
@@ -46,13 +46,20 @@ extern const char ice_drv_ver[];
 #define ICE_REQ_DESC_MULTIPLE  32
 #define ICE_MIN_NUM_DESC       ICE_REQ_DESC_MULTIPLE
 #define ICE_MAX_NUM_DESC       8160
-/* set default number of Rx/Tx descriptors to the minimum between
- * ICE_MAX_NUM_DESC and the number of descriptors to fill up an entire page
+#define ICE_DFLT_MIN_RX_DESC   512
+/* if the default number of Rx descriptors between ICE_MAX_NUM_DESC and the
+ * number of descriptors to fill up an entire page is greater than or equal to
+ * ICE_DFLT_MIN_RX_DESC set it based on page size, otherwise set it to
+ * ICE_DFLT_MIN_RX_DESC
+ */
+#define ICE_DFLT_NUM_RX_DESC \
+       min_t(u16, ICE_MAX_NUM_DESC, \
+             max_t(u16, ALIGN(PAGE_SIZE / sizeof(union ice_32byte_rx_desc), \
+                              ICE_REQ_DESC_MULTIPLE), \
+                   ICE_DFLT_MIN_RX_DESC))
+/* set default number of Tx descriptors to the minimum between ICE_MAX_NUM_DESC
+ * and the number of descriptors to fill up an entire page
  */
-#define ICE_DFLT_NUM_RX_DESC   min_t(u16, ICE_MAX_NUM_DESC, \
-                                     ALIGN(PAGE_SIZE / \
-                                           sizeof(union ice_32byte_rx_desc), \
-                                           ICE_REQ_DESC_MULTIPLE))
 #define ICE_DFLT_NUM_TX_DESC   min_t(u16, ICE_MAX_NUM_DESC, \
                                      ALIGN(PAGE_SIZE / \
                                            sizeof(struct ice_tx_desc), \