[dpdk-dev] [PATCH] sched: make RED scaling configurable

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Thu Aug 31 11:53:39 CEST 2017


CC-ing Tomasz, the author of rte_red.[hc].

> -----Original Message-----
> From: Alan Dewar [mailto:alangordondewar at gmail.com]
> Sent: Thursday, August 31, 2017 10:00 AM
> To: Dumitrescu, Cristian <cristian.dumitrescu at intel.com>
> Cc: dev at dpdk.org
> Subject: [PATCH] sched: make RED scaling configurable
> 
> The RED code stores the maximum threshold is a 32-bit integer as a
> pseudo fixed-point floating number with 10 fractional bits.  Twelve
> other bits are used to encode the filter weight, leaving just 10 bits
> for the queue length.  This limits the maximum queue length supported
> by RED queues as 1024 packets.
> 
> Move the "hard" definitions from red.h into config/common_base so that
> RED scaling can be configured during build.
> 
> Signed-off-by: Alan Dewar <alan.dewar at att.com>
> ---
>  config/common_base         | 2 ++
>  lib/librte_sched/rte_red.h | 3 +--
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/config/common_base b/config/common_base
> index 5e97a08..5501dfe 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -666,6 +666,8 @@ CONFIG_RTE_SCHED_COLLECT_STATS=n
>  CONFIG_RTE_SCHED_SUBPORT_TC_OV=n
>  CONFIG_RTE_SCHED_PORT_N_GRINDERS=8
>  CONFIG_RTE_SCHED_VECTOR=n
> +CONFIG_RTE_RED_SCALING=10
> +CONFIG_RTE_RED_MAX_TH_MAX=1023
> 
>  #
>  # Compile the distributor library
> diff --git a/lib/librte_sched/rte_red.h b/lib/librte_sched/rte_red.h
> index ca12227..49d3379 100644
> --- a/lib/librte_sched/rte_red.h
> +++ b/lib/librte_sched/rte_red.h
> @@ -51,10 +51,9 @@ extern "C" {
>  #include <rte_debug.h>
>  #include <rte_cycles.h>
>  #include <rte_branch_prediction.h>
> +#include <rte_config.h>
> 
> -#define RTE_RED_SCALING                     10         /**< Fraction size for fixed-
> point */
>  #define RTE_RED_S                           (1 << 22)  /**< Packet size multiplied by
> number of leaf queues */
> -#define RTE_RED_MAX_TH_MAX                  1023       /**< Max threshold limit
> in fixed point format */
>  #define RTE_RED_WQ_LOG2_MIN                 1          /**< Min inverse filter
> weight value */
>  #define RTE_RED_WQ_LOG2_MAX                 12         /**< Max inverse filter
> weight value */
>  #define RTE_RED_MAXP_INV_MIN                1          /**< Min inverse mark
> probability value */
> --
> 2.1.4



More information about the dev mailing list