Thread (1 message) 1 message, 1 author, 2017-08-31

Re: [PATCH] sched: make RED scaling configurable

From: Dumitrescu, Cristian <hidden>
Date: 2017-08-31 09:53:42

CC-ing Tomasz, the author of rte_red.[hc].
quoted hunk
-----Original Message-----
From: Alan Dewar [mailto:alangordondewar@gmail.com]
Sent: Thursday, August 31, 2017 10:00 AM
To: Dumitrescu, Cristian <redacted>
Cc: dev@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 <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help