1
- From 4671ddf4920553b663fda129f7c4366839347645 Mon Sep 17 00:00:00 2001
1
+ From e6e096f2507e76c375ba9d6b20c05af0b61ce2cd Mon Sep 17 00:00:00 2001
2
2
From: Donald Sharp <
[email protected] >
3
3
Date: Wed, 12 Jun 2024 14:14:48 -0400
4
- Subject: [PATCH 3/5] zebra: Modify dplane loop to allow backpressure to filter
5
- up
4
+ Subject: [PATCH] zebra: Modify dplane loop to allow backpressure to filter up
6
5
7
6
Currently when the dplane_thread_loop is run, it moves contexts
8
7
from the dg_update_list and puts the contexts on the input queue
@@ -30,11 +29,12 @@ context system and memory will not go out of control.
30
29
31
30
Signed-off-by: Donald Sharp <
[email protected] >
32
31
32
+
33
33
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
34
- index c52e032660..f0e1ff6f27 100644
34
+ index 44ee41d8c..0460463bc 100644
35
35
--- a/zebra/zebra_dplane.c
36
36
+++ b/zebra/zebra_dplane.c
37
- @@ -7155 ,10 +7155 ,10 @@ static void dplane_thread_loop(struct thread *event)
37
+ @@ -7279 ,10 +7279 ,10 @@ static void dplane_thread_loop(struct event *event)
38
38
{
39
39
struct dplane_ctx_list_head work_list;
40
40
struct dplane_ctx_list_head error_list;
@@ -47,7 +47,7 @@ index c52e032660..f0e1ff6f27 100644
47
47
bool reschedule = false;
48
48
49
49
/* Capture work limit per cycle */
50
- @@ -7182 ,18 +7182 ,48 @@ static void dplane_thread_loop(struct thread *event)
50
+ @@ -7306 ,18 +7306 ,48 @@ static void dplane_thread_loop(struct event *event)
51
51
/* Locate initial registered provider */
52
52
prov = dplane_prov_list_first(&zdplane_info.dg_providers);
53
53
@@ -104,7 +104,7 @@ index c52e032660..f0e1ff6f27 100644
104
104
DPLANE_UNLOCK();
105
105
106
106
atomic_fetch_sub_explicit(&zdplane_info.dg_routes_queued, counter,
107
- @@ -7212 ,8 +7242 ,9 @@ static void dplane_thread_loop(struct thread *event)
107
+ @@ -7336 ,8 +7366 ,9 @@ static void dplane_thread_loop(struct event *event)
108
108
* items.
109
109
*/
110
110
if (IS_ZEBRA_DEBUG_DPLANE_DETAIL)
@@ -116,7 +116,7 @@ index c52e032660..f0e1ff6f27 100644
116
116
117
117
/* Capture current provider id in each context; check for
118
118
* error status.
119
- @@ -7271 ,18 +7302 ,61 @@ static void dplane_thread_loop(struct thread *event)
119
+ @@ -7395 ,18 +7426 ,61 @@ static void dplane_thread_loop(struct event *event)
120
120
if (!zdplane_info.dg_run)
121
121
break;
122
122
@@ -185,8 +185,8 @@ index c52e032660..f0e1ff6f27 100644
185
185
dplane_provider_unlock(prov);
186
186
187
187
if (counter >= limit)
188
- @@ -7293 ,7 +7367 ,7 @@ static void dplane_thread_loop(struct thread *event)
189
- counter, dplane_provider_get_name(prov));
188
+ @@ -7422 ,7 +7496 ,7 @@ static void dplane_thread_loop(struct event *event)
189
+ }
190
190
191
191
/* Locate next provider */
192
192
- prov = dplane_prov_list_next(&zdplane_info.dg_providers, prov);
0 commit comments