[PATCH v2] sched: fix for incorrect alignment of bitmap, pipe and queue structs in subport

Megha Ajmera megha.ajmera at intel.com
Tue Feb 7 07:10:08 CET 2023


Big structures like bitmap, pipes and queues in subport are addressed
using offset of 'memory' field in subport structures. This means no other
variable should be added after 'memory' variable or else addressing of such
structs like bitmap etc. become incorrect.

Realigned tc_ov_enabled variable in subport structure.

Fixes: f5e60154ade ("sched: enable traffic class oversubscription conditionally")

Signed-off-by: Megha Ajmera <megha.ajmera at intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>
---
 lib/sched/rte_sched.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/sched/rte_sched.c b/lib/sched/rte_sched.c
index c91697131d..eaecd7ceb4 100644
--- a/lib/sched/rte_sched.c
+++ b/lib/sched/rte_sched.c
@@ -202,6 +202,9 @@ struct rte_sched_subport {
 	uint32_t qsize_add[RTE_SCHED_QUEUES_PER_PIPE];
 	uint32_t qsize_sum;
 
+	/* TC oversubscription activation */
+	int tc_ov_enabled;
+
 	struct rte_sched_pipe *pipe;
 	struct rte_sched_queue *queue;
 	struct rte_sched_queue_extra *queue_extra;
@@ -210,8 +213,6 @@ struct rte_sched_subport {
 	struct rte_mbuf **queue_array;
 	uint8_t memory[0] __rte_cache_aligned;
 
-	/* TC oversubscription activation */
-	int tc_ov_enabled;
 } __rte_cache_aligned;
 
 struct rte_sched_port {
-- 
2.25.1



More information about the dev mailing list