Commit 3ae09d7
net/rds: Don't block workqueues "cma_wq" and "cm.wq"
The rdma_cm event handler is called through either one of these queues.
Unfortunately RDS is quite slow in processing some of these events.
"RDMA_CM_EVENT_ROUTE_RESOLVED" which triggers a "cm_initiate_connect"
was seen to accumulate delays up to 15 seconds before the
same event could be delivered for subsequent "rdma_resolve_route"
calls, manifesting itself in propagation delays from
"cma_query_handler" to "cma_work_handler".
There were even cases where a single call to "rds_rdma_cm_event_handler_cmn"
took on the order of 4 seconds.
One of the main offenders is "RDMA_CM_EVENT_ESTABLISHED" which triggers
a "cm_connect_complete", which is a very expensive operation.
Simply send the processing of events to the background,
in order for them to no longer block the "cma_wq" or "cm.wq" workqueues,
that are shared across all connections and allow for only a single
active worker at a time.
Since the "rds_rdma_cm_event_handler_cmn" callback no longer benefits
from the protection of "cm_id" to not disappear in the midst of the
callback, we obtain the value of "cm_id->context" from within
"rds_spawn_rdma_cm_event_handler" and pass it to
"rds_rdma_cm_event_handler_cmn" instead.
Also drop "WQ_MEM_RECLAIM" from "rds_aux_wq", since workqueues
marked for RECLAIM are not allowed to depend (flush_work)
on non-RECLAIM workqueues.
Orabug: 32373816
Signed-off-by: Gerd Rausch <[email protected]>
Reviewed-by: Ka-Cheong Poon <[email protected]>
(cherry picked from commit 04d2f24)
Port to U3
Signed-off-by: Jack Vogel <[email protected]>
Orabug: 33590097
UEK6 => UEK7
(cherry picked from commit 41cf364)
cherry-pick-repo=UEK/production/linux-uek.git
Signed-off-by: Gerd Rausch <[email protected]>
Reviewed-by: William Kucharski <[email protected]>
Orabug: 37347036
UEK7 => LUCI => UEK8
(cherry picked from commit 093ae1d)
cherry-pick-repo=UEK/production/linux-uek.git
Signed-off-by: Gerd Rausch <[email protected]>
Reviewed-by: William Kucharski <[email protected]>1 parent 10d03da commit 3ae09d7
2 files changed
+92
-37
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1226 | 1226 | | |
1227 | 1227 | | |
1228 | 1228 | | |
1229 | | - | |
1230 | | - | |
| 1229 | + | |
1231 | 1230 | | |
1232 | 1231 | | |
1233 | 1232 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
49 | 58 | | |
50 | 59 | | |
51 | 60 | | |
| |||
100 | 109 | | |
101 | 110 | | |
102 | 111 | | |
103 | | - | |
104 | | - | |
105 | | - | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
106 | 116 | | |
107 | | - | |
108 | | - | |
109 | 117 | | |
| 118 | + | |
110 | 119 | | |
111 | 120 | | |
112 | 121 | | |
| |||
128 | 137 | | |
129 | 138 | | |
130 | 139 | | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
135 | 144 | | |
136 | 145 | | |
137 | 146 | | |
138 | 147 | | |
139 | 148 | | |
140 | | - | |
| 149 | + | |
141 | 150 | | |
| 151 | + | |
| 152 | + | |
142 | 153 | | |
143 | 154 | | |
144 | | - | |
| 155 | + | |
145 | 156 | | |
146 | 157 | | |
147 | 158 | | |
| |||
169 | 180 | | |
170 | 181 | | |
171 | 182 | | |
172 | | - | |
| 183 | + | |
| 184 | + | |
173 | 185 | | |
174 | 186 | | |
175 | 187 | | |
176 | 188 | | |
177 | | - | |
| 189 | + | |
178 | 190 | | |
179 | 191 | | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
185 | 197 | | |
186 | 198 | | |
187 | | - | |
| 199 | + | |
188 | 200 | | |
189 | 201 | | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | 202 | | |
196 | 203 | | |
197 | 204 | | |
198 | 205 | | |
199 | 206 | | |
200 | 207 | | |
201 | 208 | | |
202 | | - | |
203 | | - | |
204 | | - | |
| 209 | + | |
205 | 210 | | |
206 | 211 | | |
207 | 212 | | |
| |||
343 | 348 | | |
344 | 349 | | |
345 | 350 | | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
354 | 354 | | |
| 355 | + | |
355 | 356 | | |
356 | | - | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
357 | 411 | | |
358 | 412 | | |
359 | 413 | | |
360 | 414 | | |
361 | 415 | | |
362 | | - | |
| 416 | + | |
| 417 | + | |
363 | 418 | | |
364 | 419 | | |
365 | 420 | | |
366 | 421 | | |
367 | 422 | | |
368 | 423 | | |
369 | | - | |
| 424 | + | |
| 425 | + | |
370 | 426 | | |
371 | 427 | | |
372 | 428 | | |
| |||
0 commit comments