cx9208 / bbrplus Goto Github PK
View Code? Open in Web Editor NEW编译了dog250大神的bbr修正版
License: GNU General Public License v3.0
编译了dog250大神的bbr修正版
License: GNU General Public License v3.0
更新一波,现支持4.9/4.14/4.19/5.4/5.9/5.10,大家可到我的github主页看看
目前提供源码包(CentOS、Debian/Ubuntu源码格式)和已编译内核(CentOS、Debian/Ubuntu)的版本是
5.10.4
5.9.16
5.4.86
4.19.164
4.14.213
4.9.249
手动安装的时候显示无法打开
先感谢 op 找出一个新玩具
因为有一段时间没追 kernel 了,我在意的是 dog250 mod 于更新版本下的适配问题,即这份源码的 patches 具体包括了哪些代码,以及能否用于更新的内核环境
我目前还没看源码,先想到了这个问题
op 你怎么看
貌似不支持virpus的xen的机器,自动和手动脚本都不支持
大陆白天,肯定wireguard表现好一些,晚上想用bbrplus扶一下墙,这centos7实在无法启动wireguard,期待出debian版本
大家可到我的github主页,欢迎来测试。支持: CentOS 6-8、Debian 8-10、Ubuntu 14-20。
有编译好的版本、有所编译版本的源码包,也提供patch补丁,可用Linux官方内核源码编译。
其中4.14应该解决了某些系统启动慢的问题(我猜),自己持续更新自用了一年多没啥问题。
4.19、5.4是刚编译好的,只简单测试在几种OS安装正常、基本运行正常、启用bbrplus正常。
在路由器上用,更换内核太困难,老哥啥时候更新下自编译的方法呢?armbian系统,谢谢!
需要手工执行insmod tcp_bbrplus.ko 加载模块,希望脚本里能增加这个处理
我在搬瓦工上的VPS安装完bbrplus SWAP经常飙高
BBR v2似乎出了preview版,可不可以试着出一个bbrplus v2呢?
https://github.com/google/bbr/tree/v2alpha
最近都在传版本内核有漏洞,会被远程攻击导致机器挂掉。能否提供更安全的内核来支持bbrplus
centos 7X 中安装后 因为没有使用空格 导致 不能使用BBR
需要 把 bbrplus/ok_bbrplus_centos.sh 中第40 41 行 应该是:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbrplus
假期结束,更新一波,大家可到我的github主页看看
本次更新的新特性有:
以前更新的特性:
目前提供的源码包和内核版本是
5.4.70
4.19.150
4.14.200
4.9.228
感谢分享与贡献。
UnixBench/
UnixBench/README
UnixBench/src/
UnixBench/src/looper.c
UnixBench/src/time-polling.c
UnixBench/src/arith.c
UnixBench/src/hanoi.c
UnixBench/src/timeit.c
UnixBench/src/dhry_1.c
UnixBench/src/dhry.h
UnixBench/src/dhry_2.c
UnixBench/src/fstime.c
UnixBench/src/syscall.c
UnixBench/src/execl.c
UnixBench/src/context1.c
UnixBench/src/whets.c
UnixBench/src/dummy.c
UnixBench/src/big.c
UnixBench/src/spawn.c
UnixBench/src/pipe.c
UnixBench/src/ubgears.c
UnixBench/pgms/
UnixBench/pgms/index.base
UnixBench/pgms/gfx-x11
UnixBench/pgms/multi.sh
UnixBench/pgms/unixbench.logo
UnixBench/pgms/tst.sh
UnixBench/WRITING_TESTS
UnixBench/.project
UnixBench/Run
UnixBench/testdir/
UnixBench/testdir/sort.src
UnixBench/testdir/cctest.c
UnixBench/testdir/dc.dat
UnixBench/testdir/large.txt
UnixBench/.cproject
UnixBench/results/
UnixBench/Makefile
UnixBench/USAGE
Checking distribution of files
./pgms exists
./src exists
./testdir exists
./tmp exists
./results exists
gcc -o ./pgms/context1 -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/context1.c
In file included from /usr/include/errno.h:35:0,
from ./src/context1.c:29:
/usr/include/bits/errno.h:24:26: fatal error: linux/errno.h: No such file or directory
更新一波,现支持4.9/4.14/4.19/5.4/5.9,大家可到我的github主页看看
本次更新的新特性有:
以前更新的特性:
目前提供源码包(CentOS、Debian/Ubuntu源码格式)和已编译内核(CentOS、Debian/Ubuntu)的版本是
5.9.11
5.4.80
4.19.160
4.14.209
4.9.246
Is really ?
Is realistic?
Is real man?
Who am I
Animation?
Any motion?
"矩陣數列》》
@frāctus (structure) @vector
Anticipation
Atomy?
Atom?
Or Am I?
RT
万兆双网卡,配置策略路由,默认路由配置在p4p1。
最长一周时间服务器就会宕机,没有显示报错信息,关闭bbr没有再宕机,多台双网卡服务器测试过都有此情况。
RT感觉BBR是内核层面的 应该是不受影响的
2020-10-02编译了新版,支持4.14/4.19/5.4。主要有两个改进:
1、整合了4.14版BBR从18~20年所有和plus不冲突的补丁到BBRplus里,个别冲突的没整合
2、保留了各版的BBR模块,可在sysctl指定net.ipv4.tcp_congestion_control=bbrplus 或 bbr
可到我的github主页下载对官方源码的补丁、centos/debian格式源码、或编译好的rpm/deb
编译好的安装包版本:
4.14.200
4.19.149
5.4.69
大佬你好我为我的米9编译bbrplus内核,版本是4.14,都按照你说的改了,但在最后报错
AR drivers/staging/built-in.o
AR drivers/built-in.o
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
AR init/built-in.o
AR built-in.o
LD vmlinux.o
MODPOST vmlinux.o
net/ipv4/tcp_bbrplus.o: In function bbr_drain_to_target_cycling': /root/kernel_MIUI_Q_cepheusbbrplus/out/../net/ipv4/tcp_bbrplus.c:278: undefined reference to
tcp_snd_wnd_test'
/root/kernel_MIUI_Q_cepheusbbrplus/Makefile:1120: recipe for target 'vmlinux' failed
make[1]: *** [vmlinux] Error 1
make[1]: Leaving directory '/root/kernel_MIUI_Q_cepheusbbrplus/out'
Makefile:146: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
root@ubuntu:~/kernel_MIUI_Q_cepheusbbrplus#
说是`tcp_snd_wnd_test'并未定义,但我确实是在net/ipv4/tcp_output.c中添加了EXPORT_SYMBOL(tcp_snd_wnd_test);
并且我是将bbrplus编译进内核而不是编译出模块
不知道为什么会这样
求大佬解答XD
修改/net/ipv4/tcp_output.c#L,1823行
tcp_snd_wnd_test函数大括号后}
换行添加EXPORT_SYMBOL(tcp_snd_wnd_test);
/* Does at least the first segment of SKB fit into the send window? */
static bool tcp_snd_wnd_test(const struct tcp_sock *tp,
const struct sk_buff *skb,
unsigned int cur_mss)
{
u32 end_seq = TCP_SKB_CB(skb)->end_seq;
if (skb->len > cur_mss)
end_seq = TCP_SKB_CB(skb)->seq + cur_mss;
return !after(end_seq, tcp_wnd_end(tp));
}
EXPORT_SYMBOL(tcp_snd_wnd_test);
如题大神谢谢
net/ipv4/tcp_bbrplus.c: In function 'bbr_set_tso_segs_goal':
net/ipv4/tcp_bbrplus.c:387:5: error: implicit declaration of function 'tcp_tso_autosize' [-Werror=implicit-function-declaration]
bbr->tso_segs_goal = min(tcp_tso_autosize(sk, tp->mss_cache, min_segs),
^
In file included from ./include/linux/list.h:9:0,
from ./include/linux/module.h:9,
from net/ipv4/tcp_bbrplus.c:59:
./include/linux/kernel.h:846:29: warning: comparison of distinct pointer types lacks a cast [enabled by default]
(!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
^
./include/linux/kernel.h:860:4: note: in expansion of macro '__typecheck'
(__typecheck(x, y) && __no_side_effects(x, y))
^
./include/linux/kernel.h:870:24: note: in expansion of macro '__safe_cmp'
__builtin_choose_expr(__safe_cmp(x, y),
^
./include/linux/kernel.h:879:19: note: in expansion of macro '__careful_cmp'
#define min(x, y) __careful_cmp(x, y, <)
^
net/ipv4/tcp_bbrplus.c:387:26: note: in expansion of macro 'min'
bbr->tso_segs_goal = min(tcp_tso_autosize(sk, tp->mss_cache, min_segs),
^
net/ipv4/tcp_bbrplus.c: At top level:
net/ipv4/tcp_bbrplus.c:1147:5: error: unknown field 'tso_segs_goal' specified in initializer
.tso_segs_goal = bbr_tso_segs_goal,
^
net/ipv4/tcp_bbrplus.c:1147:5: warning: initialization from incompatible pointer type [enabled by default]
net/ipv4/tcp_bbrplus.c:1147:5: warning: (near initialization for 'tcp_bbr_cong_ops.cong_avoid') [enabled by default]
cc1: some warnings being treated as errors
make[4]: *** [net/ipv4/tcp_bbrplus.o] Error 1
make[3]: *** [net/ipv4] Error 2
make[2]: *** [net] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.PTvtC5 (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.PTvtC5 (%build)
make[1]: *** [rpm-pkg] Error 1
make: *** [rpm-pkg] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.