diff mbox series

[S20,04/15] ice: Set minimum default Rx descriptor count to 512

Message ID 20190416173052.28928-5-anirudh.venkataramanan@intel.com
State Accepted
Delegated to: Jeff Kirsher
Headers show
Series Fixes and feature updates for ice | expand

Commit Message

Anirudh Venkataramanan April 16, 2019, 5:30 p.m. UTC
From: Brett Creeley <brett.creeley@intel.com>

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>
---
 drivers/net/ethernet/intel/ice/ice.h | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

Comments

Kirsher, Jeffrey T April 17, 2019, 10:50 p.m. UTC | #1
On Tue, 2019-04-16 at 10:30 -0700, Anirudh Venkataramanan wrote:
> From: Brett Creeley <brett.creeley@intel.com>
> 
> 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>
> ---
>  drivers/net/ethernet/intel/ice/ice.h | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ice/ice.h
> b/drivers/net/ethernet/intel/ice/ice.h
> index b5990ba0ee4c..0555d09614d8 100644
> --- a/drivers/net/ethernet/intel/ice/ice.h
> +++ b/drivers/net/ethernet/intel/ice/ice.h
> @@ -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))

This macro is overly wrapped, when it can be reduced by a line.  I have
fixed the wrapping in my tree for review and validation.

> +/* 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),
> \
Bowers, AndrewX April 29, 2019, 6:11 p.m. UTC | #2
> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@osuosl.org] On
> Behalf Of Anirudh Venkataramanan
> Sent: Tuesday, April 16, 2019 10:31 AM
> To: intel-wired-lan@lists.osuosl.org
> Subject: [Intel-wired-lan] [PATCH S20 04/15] ice: Set minimum default Rx
> descriptor count to 512
> 
> From: Brett Creeley <brett.creeley@intel.com>
> 
> 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>
> ---
>  drivers/net/ethernet/intel/ice/ice.h | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
index b5990ba0ee4c..0555d09614d8 100644
--- a/drivers/net/ethernet/intel/ice/ice.h
+++ b/drivers/net/ethernet/intel/ice/ice.h
@@ -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), \