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
Copy file name to clipboardExpand all lines: docs/en/rdma.md
+6-14Lines changed: 6 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,24 +48,17 @@ The application can manage memory by itself and send data with IOBuf::append_use
48
48
RDMA is hardware-related. It has some different concepts such as device, port, GID, LID, MaxSge and so on. These parameters can be read from NICs at initialization, and brpc will make the default choice (see src/brpc/rdma/rdma_helper.cpp). Sometimes the default choice is not the expectation, then it can be changed in the flag way.
49
49
50
50
`event_dispatcher_edisp_unsched` is a global flag and affects EventDispatcher scheduling in both normal mode (TCP) and RDMA mode.
51
-
It replaces `rdma_edisp_unsched`. `rdma_edisp_unsched`is still kept only for command-line compatibility and is planned for removal in a future release. The two flags have the same semantics: `true` means EventDispatcher is unschedulable.
51
+
`true` means EventDispatcher is unschedulable, and `false` means schedulable (default).
52
52
53
-
Historical note: there was a previous `if`-condition bug on the RDMA path, where behavior did not match the flag semantics. The logic is now fixed and follows the unified semantics.
No startup synchronization rewrites user flags. Runtime behavior is determined directly from user-provided values.
53
+
Runtime behavior is determined directly from user-provided values.
59
54
60
55
Recommended usage:
61
-
1. New deployment: set only `event_dispatcher_edisp_unsched`.
62
-
2. Existing deployment: keep `rdma_edisp_unsched` temporarily, but migrate to `event_dispatcher_edisp_unsched`.
63
-
3. Avoid conflicting values in scripts; with unified OR semantics, either flag being `true` makes EventDispatcher unschedulable.
56
+
1. Keep the default `false` when unsched is not needed.
57
+
2. Set `-event_dispatcher_edisp_unsched=true` when unsched behavior is required.
64
58
65
59
Examples:
66
-
1. Only `-rdma_edisp_unsched=true`: `rdma_edisp_unsched=true`, `event_dispatcher_edisp_unsched=false`; both TCP and RDMA are unschedulable.
67
-
2. Only `-event_dispatcher_edisp_unsched=true`: `rdma_edisp_unsched=false`, `event_dispatcher_edisp_unsched=true`; both TCP and RDMA are unschedulable.
68
-
3. Both `-rdma_edisp_unsched=true -event_dispatcher_edisp_unsched=false`: `rdma_edisp_unsched=true`, `event_dispatcher_edisp_unsched=false`; both TCP and RDMA are unschedulable.
60
+
1.`-event_dispatcher_edisp_unsched=false`: both TCP and RDMA are schedulable.
61
+
2.`-event_dispatcher_edisp_unsched=true`: both TCP and RDMA are unschedulable.
69
62
70
63
# Parameters
71
64
@@ -92,5 +85,4 @@ Configurable parameters:
92
85
* rdma_poller_num: The number of pollers in polling mode, default is 1.
93
86
* rdma_poller_yield: Whether pollers in polling mode voluntarily relinquish the CPU, default is false.
94
87
* event_dispatcher_edisp_unsched: Global switch for EventDispatcher scheduling (true means unschedulable), default is false.
95
-
* rdma_edisp_unsched: Deprecated compatibility flag (planned removal in a future release). It still participates in unified unsched condition, default is false.
96
88
* rdma_disable_bthread: Disables bthread, default is false.
0 commit comments