[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