Skip to content

Commit ae3fd67

Browse files
committed
update feature plan to reflect recent work done
1 parent 4b96275 commit ae3fd67

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

FEATURE_PLAN.md

+18-14
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,13 @@
5252
Done on a per-table basis via netlink to target changes to
5353
tables which need it (tested)
5454

55-
### congestion tuner
56-
- tuner counts retransmissions keyed by remote IP, and if we see
57-
>3% retransmission for a connection to a remote host, we apply
58-
BBR on connection setup to ensure we do not over-estimate
59-
congestion (and thus under-estimate link capacity) (tested)
55+
### connection tuner
56+
- tuner monitors min RTT, max delivery rate on a per-host basis
57+
in order to identify which congestion control algorithm
58+
approaches the ideal rate where it fills the pipe but does
59+
not under- or over-estimate congestion. Reinforcement learning
60+
is used to select actions that minimize cost (which is defined
61+
as divergence from optimal min RTT/max delivery rate).
6062

6163
### TCP buffer size tuner
6264
- tuner watches for tcp_expand_sndbuf() and checks if we approach
@@ -81,14 +83,20 @@
8183
- bpftune reports what changes were made to tunables on exit
8284
as a kind of summarization mode.
8385

86+
### Rollback mode
87+
88+
- If run with "-R" (rollback), sysctl changes will be undone,
89+
so the user can explore what auto-tuning is done without
90+
making long-term changes.
91+
8492
### Packaging
8593
- added a "make pkg" target which creates rpm
8694
- set up other/bpftune for ol8 builds
8795

8896
### add support for aarch64/older kernels
8997
- Add legacy kprobe support also as this will be needed for
90-
aarch64 which does not yet have BPF trampoline; legacy also
91-
needed for older kernels that do not have fentry/fexit or
98+
aarch64 which did not get BPF trampoline until 6.5; legacy
99+
is needed for older kernels that do not have fentry/fexit or
92100
iterators. Added "bpftune -S" support that auto-detects
93101
level of support provided, and legacy tuners are used
94102
if full support is not possible.
@@ -145,12 +153,8 @@
145153
where SO_[SND|RCV]BUF is not honoured do to [wr]mem_max
146154
settings and adjust [wr]mem_max?
147155

148-
### Congestion tuner improvements
149-
- use htcp for large bandwidth-delay product links - a large
150-
BDP is > 10^5, so use htcp for those cases. Use rate estimates
151-
to generate BDP estimate. Problem - h-tcp is terrible at
152-
high loss rates so investigate sweet spot of loss rate/perf
153-
for h-tcp, otherwise use BBR.
156+
### Connection tuner improvements
157+
- done; see bpftune-tcp-conn (8)
154158

155159
### neigh table tuner
156160

@@ -163,7 +167,7 @@ for h-tcp, otherwise use BBR.
163167

164168
- assessing tuner strategy: are we helping or making things
165169
worse? Support multiple strategies per tuner, explore the
166-
best?
170+
best? Multiple strategy support has landed, not used yet.
167171
- kernel support for tunable override via bpf? Have decision points
168172
in kernel be over-rideable by BPF; would need to have sysctl
169173
denote "this is BPF tuned" somehow...

0 commit comments

Comments
 (0)