You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 <gerd.rausch@oracle.com>
Reviewed-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
(cherry picked from commit 04d2f24)
Port to U3
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Orabug: 33590097
UEK6 => UEK7
(cherry picked from commit 41cf364)
cherry-pick-repo=UEK/production/linux-uek.git
Signed-off-by: Gerd Rausch <gerd.rausch@oracle.com>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>
Orabug: 37347036
UEK7 => LUCI => UEK8
(cherry picked from commit 093ae1d)
cherry-pick-repo=UEK/production/linux-uek.git
Signed-off-by: Gerd Rausch <gerd.rausch@oracle.com>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>
0 commit comments