52
52
Done on a per-table basis via netlink to target changes to
53
53
tables which need it (tested)
54
54
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).
60
62
61
63
### TCP buffer size tuner
62
64
- tuner watches for tcp_expand_sndbuf() and checks if we approach
81
83
- bpftune reports what changes were made to tunables on exit
82
84
as a kind of summarization mode.
83
85
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
+
84
92
### Packaging
85
93
- added a "make pkg" target which creates rpm
86
94
- set up other/bpftune for ol8 builds
87
95
88
96
### add support for aarch64/older kernels
89
97
- 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
92
100
iterators. Added "bpftune -S" support that auto-detects
93
101
level of support provided, and legacy tuners are used
94
102
if full support is not possible.
145
153
where SO_ [ SND|RCV] BUF is not honoured do to [ wr] mem_max
146
154
settings and adjust [ wr] mem_max?
147
155
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)
154
158
155
159
### neigh table tuner
156
160
@@ -163,7 +167,7 @@ for h-tcp, otherwise use BBR.
163
167
164
168
- assessing tuner strategy: are we helping or making things
165
169
worse? Support multiple strategies per tuner, explore the
166
- best?
170
+ best? Multiple strategy support has landed, not used yet.
167
171
- kernel support for tunable override via bpf? Have decision points
168
172
in kernel be over-rideable by BPF; would need to have sysctl
169
173
denote "this is BPF tuned" somehow...
0 commit comments