BBR patches?

Randall Stewart rrs at netflix.com
Wed Sep 18 14:09:40 UTC 2019


To get bbr running you will need to change your kernel config.

Are you building i386 or amd64?

After you have successfully did 

1) buildworld
2) buildkernel
3) installkernel

(you can look in UPDATING for instructions .. though the file is long :D)

successfully let me know.. and then I will give you the tweaks you need to add
to the kerneconf.

It won’t take as long to build because at that point you can add in the
NO_CLEAN NO_CLEANDIR options as well since you will have built everything
the first time

R

> On Sep 18, 2019, at 7:06 AM, vm finance <vm.finance2 at gmail.com> wrote:
> 
> BTW, if you think I should be making any changes in configs, please do let me know.
> My goal is to build a freebsd image with BBR patches on x86 VM. 
> Nothing fancy.
> 
> thanks!
> 
> On Wed, Sep 18, 2019 at 7:03 AM vm finance <vm.finance2 at gmail.com> wrote:
> Thanks Randall, Michael,
> 
> I did "svn svn://svn.freebsd.org/base/head /usr/src"
> and now doing "make buildworld buildkernel" 
> [I didn't change anything in configs - just whatever are the defaults]
> 
> I would update as soon as its done.
> 
> Thanks again!
> 
> On Wed, Sep 18, 2019 at 6:53 AM Randall Stewart <rrs at netflix.com> wrote:
> One other note.. I notice his kernel conf he sent does not have
> the right things to get BBR even to attempt to build.
> 
> I would suggest using that config for the first steps.. then he must add
> the additional tcp stacks and the hpts in order to get bbr/rack and any other
> extra stack…. 
> 
> But I would suggest to build with his current config first and once he has
> that in place and building
> 
> a) apply the patch
> b) add the extra kernel options
> 
> R
> 
> > On Sep 18, 2019, at 6:50 AM, Randall Stewart <rrs at netflix.com> wrote:
> > 
> > Thats  great idea Michael.
> > 
> > From the look fo the build log I was sent, his blow-up has nothing to do
> > with the patches.
> > 
> > He should probably
> > 
> > 1) Check out a fresh version of head.
> > 2) Follow the instructions in UPDATING to get a clean build.
> >   —  make buildworld
> >   — make buildkernel KERNCONF=his-conf
> >   — make installkernel KERNCONF=his-conf
> > 
> >    ** do the reboot and merge master **
> > 
> > Then after that he could
> > 
> > 3) Apply the current patch in the review
> > 4) do build that
> >      — make buildkernel KERNCONF=his_conf  -DNO_CLEAN -DNO_CLEANDIR
> >      — make install kernel KERNCONF=his_conf
> > 
> > And he should have it all working :)
> > 
> > I have done multiple builds with the latest head from yesterday both with and without
> > the extra stacks and hpts.. and I can’t get a build failure.. this would verify he can
> > at least build head..
> > 
> > R
> > 
> >> On Sep 18, 2019, at 12:10 AM, Michael Tuexen <michael.tuexen at lurchi.franken.de> wrote:
> >> 
> >>> On 18. Sep 2019, at 08:19, vm finance <vm.finance2 at gmail.com> wrote:
> >>> 
> >>> correcting a typo:
> >>> 
> >>> svn co svn://svn.freebsd.org/base/head /usr/src
> >>> current revision: 352434
> >> I suggest to build/install head first without any patches. After that has worked,
> >> apply the patches you are interested in. That way it is easy to separate generic
> >> build issues and issue specific to a patch.
> >> 
> >> Best regards
> >> Michael
> >>> 
> >>> Thank you!
> >>> 
> >>> On Tue, Sep 17, 2019 at 10:11 PM vm finance <vm.finance2 at gmail.com> wrote:
> >>> 
> >>>> Actually I am on head already as mentioned previously. Pulled it using
> >>>> yesterday:
> >>>> 
> >>>> svn co svn://svn.freebsd.org/base/head /use/src
> >>>> 
> >>>> 
> >>>> If you could pls let me know the new patch, I can try that.
> >>>> 
> >>>> Thanks
> >>>> 
> >>>> Sent from my iPhone
> >>>> 
> >>>> On 18-Sep-2019, at 8:56 AM, Randall Stewart <rrs at netflix.com> wrote:
> >>>> 
> >>>> There have been several patches pre-this one that provide
> >>>> the infrastructure to support BBR.
> >>>> 
> >>>> Release 12.0 will *not* have these patches and will *not* compile it.
> >>>> 
> >>>> I have no intention at this point in doing a MFC of this work.. so if you
> >>>> want
> >>>> to run BBR you need to run Head
> >>>> 
> >>>> R
> >>>> 
> >>>> On Sep 17, 2019, at 7:26 PM, vm finance <vm.finance2 at gmail.com> wrote:
> >>>> 
> >>>> 
> >>>> Hi Randall,
> >>>> 
> >>>> 
> >>>> Could you please provide a pointer to the latest patch. I had applied the
> >>>> one you published Sep-10.
> >>>> 
> >>>> 
> >>>> Following is what I have done:
> >>>> 
> >>>> 1. Picked FreeBSD 12.0 RELEASE VM from osboxes.org
> >>>> 
> >>>> 2. Got VM up under VMPlayer on x86 laptop
> >>>> 
> >>>> 3. Checked out latest codebase from freebsd repo:
> >>>> 
> >>>> svn co svn://svn.freebsd.org/base/head /usr/src*
> >>>> 
> >>>> cd /usr/src;
> >>>> 
> >>>> make buildworld buildkernel
> >>>> 
> >>>> [this is where make fails when patch is applied]
> >>>> 
> >>>> 
> >>>> I could try to build with your latest patch - please send me a pointer.
> >>>> 
> >>>> 
> >>>> Thanks for your help!
> >>>> 
> >>>> 
> >>>> 
> >>>> On Tue, Sep 17, 2019 at 1:33 PM Randall Stewart <rrs at netflix.com> wrote:
> >>>> 
> >>>> Looking at your make file log I can’t really tell what you are doing.
> >>>> 
> >>>> 
> >>>> Its not the BBR or Rack code that is blowing up…
> >>>> 
> >>>> 
> >>>> Are you cross compiling?
> >>>> 
> >>>> 
> >>>> I have done the old fashioned kernel make
> >>>> 
> >>>> 
> >>>> i.e.
> >>>> 
> >>>> 
> >>>> cd src/sys/amd64/config
> >>>> 
> >>>> config headvm
> >>>> 
> >>>> cd ../compile/headvm
> >>>> 
> >>>> 
> >>>> make cleandepend ; make depend; make -j3
> >>>> 
> >>>> 
> >>>> I have done
> >>>> 
> >>>> 
> >>>> cd src
> >>>> 
> >>>> make buildkernel KERNCONF=headvm
> >>>> 
> >>>> 
> >>>> And even
> >>>> 
> >>>> 
> >>>> make buildkernel KERNCONF=GENERIC
> >>>> 
> >>>> 
> >>>> to make sure that the build works without bbr.
> >>>> 
> >>>> 
> >>>> I attach my headvm config..
> >>>> 
> >>>> 
> >>>> What exactly are you building and how? kernel config too please?
> >>>> 
> >>>> 
> >>>> R
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> On Sep 17, 2019, at 1:11 PM, Randall Stewart <rrs at netflix.com> wrote:
> >>>> 
> >>>> 
> >>>> looking
> >>>> 
> >>>> 
> >>>> I was at 352408.. let me update and try it
> >>>> 
> >>>> 
> >>>> R
> >>>> 
> >>>> 
> >>>> On Sep 17, 2019, at 1:10 PM, Randall Stewart <rrs at netflix.com> wrote:
> >>>> 
> >>>> 
> >>>> Hmm
> >>>> 
> >>>> 
> >>>> Did you get the patch I updated too this am?
> >>>> 
> >>>> 
> >>>> I have built it both with and without the bbr stack and had no issue..
> >>>> there was
> >>>> 
> >>>> an issue with KTLS before the update though.
> >>>> 
> >>>> 
> >>>> I don’t recognize what you have below there though…
> >>>> 
> >>>> 
> >>>> R
> >>>> 
> >>>> 
> >>>> On Sep 17, 2019, at 11:47 AM, vm finance <vm.finance2 at gmail.com> wrote:
> >>>> 
> >>>> 
> >>>> Got it - thank you!
> >>>> 
> >>>> 
> >>>> btw, I tried to build the patch but its giving an error. Following is SVN
> >>>> info + make error mesg.
> >>>> 
> >>>> 
> >>>> Please let me know what am I missing here?
> >>>> 
> >>>> 
> >>>> Thanks!
> >>>> 
> >>>> 
> >>>> #svnlite revision
> >>>> 
> >>>> Path: .
> >>>> 
> >>>> Working Copy Root Path: /usr/src
> >>>> 
> >>>> URL: svn://svn.freebsd.org/base/head
> >>>> 
> >>>> Relative URL: ^/head
> >>>> 
> >>>> Repository Root: svn://svn.freebsd.org/base
> >>>> 
> >>>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
> >>>> 
> >>>> Revision: 352436
> >>>> 
> >>>> Node Kind: directory
> >>>> 
> >>>> Schedule: normal
> >>>> 
> >>>> Last Changed Author: jah
> >>>> 
> >>>> Last Changed Rev: 352434
> >>>> 
> >>>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep 2019)
> >>>> 
> >>>> 
> >>>> root at osboxes:/usr/src #
> >>>> 
> >>>> 
> >>>> -------------------------------------------- snip
> >>>> ----------------------------
> >>>> 
> >>>> 
> >>>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo dev_net.llo
> >>>> bcache.llo interp_simple.llo zfs_cmd.llo
> >>>> 
> >>>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS
> >>>> 
> >>>> ===> sys (cleandir)
> >>>> 
> >>>> rm -f export_syms machine x86 tcp_bbr.ko tcp_bbr.kld bbr.o sack_filter.o
> >>>> rack_bbr_common.o opt_inet.h opt_inet6.h opt_ipsec.h opt_tcpdebug.h
> >>>> opt_kern_tls.h
> >>>> 
> >>>> rm: x86: is a directory
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make[3]: stopped in /usr/src/sys
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make[2]: stopped in /usr/src
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make[1]: stopped in /usr/src
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make: stopped in /usr/src
> >>>> 
> >>>> 
> >>>> 
> >>>> On Tue, Sep 17, 2019 at 6:41 PM vm finance <vm.finance2 at gmail.com> wrote:
> >>>> 
> >>>> Got it - thank you!
> >>>> 
> >>>> 
> >>>> btw, I tried to build the patch but its giving an error. Following is SVN
> >>>> info + make error mesg.
> >>>> 
> >>>> I have also attached the entire build log...snippet is below
> >>>> 
> >>>> 
> >>>> Please let me know what am I missing here?
> >>>> 
> >>>> 
> >>>> Thanks!
> >>>> 
> >>>> 
> >>>> #svnlite revision
> >>>> 
> >>>> Path: .
> >>>> 
> >>>> Working Copy Root Path: /usr/src
> >>>> 
> >>>> URL: svn://svn.freebsd.org/base/head
> >>>> 
> >>>> Relative URL: ^/head
> >>>> 
> >>>> Repository Root: svn://svn.freebsd.org/base
> >>>> 
> >>>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
> >>>> 
> >>>> Revision: 352436
> >>>> 
> >>>> Node Kind: directory
> >>>> 
> >>>> Schedule: normal
> >>>> 
> >>>> Last Changed Author: jah
> >>>> 
> >>>> Last Changed Rev: 352434
> >>>> 
> >>>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep 2019)
> >>>> 
> >>>> 
> >>>> root at osboxes:/usr/src #
> >>>> 
> >>>> 
> >>>> -------------------------------------------- snip
> >>>> ----------------------------
> >>>> 
> >>>> 
> >>>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo dev_net.llo
> >>>> bcache.llo interp_simple.llo zfs_cmd.llo
> >>>> 
> >>>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS
> >>>> 
> >>>> ===> sys (cleandir)
> >>>> 
> >>>> rm -f export_syms machine x86 tcp_bbr.ko tcp_bbr.kld bbr.o sack_filter.o
> >>>> rack_bbr_common.o opt_inet.h opt_inet6.h opt_ipsec.h opt_tcpdebug.h
> >>>> opt_kern_tls.h
> >>>> 
> >>>> rm: x86: is a directory
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make[3]: stopped in /usr/src/sys
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make[2]: stopped in /usr/src
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make[1]: stopped in /usr/src
> >>>> 
> >>>> *** Error code 1
> >>>> 
> >>>> 
> >>>> Stop.
> >>>> 
> >>>> make: stopped in /usr/src
> >>>> 
> >>>> 
> >>>> 
> >>>> On Tue, Sep 17, 2019 at 6:27 PM Randall Stewart <rrs at netflix.com> wrote:
> >>>> 
> >>>> Pacing is provided by tcp_hpts.c. The current linux patches do not have
> >>>> 
> >>>> to have fq.. they built an alternate means of doing pacing into bbr.
> >>>> 
> >>>> 
> >>>> In either case our testing has shown that our pacing is more accurate than
> >>>> 
> >>>> either fq or the internal pacer :)
> >>>> 
> >>>> 
> >>>> R
> >>>> 
> >>>> 
> >>>> On Sep 17, 2019, at 11:05 AM, vm finance <vm.finance2 at gmail.com> wrote:
> >>>> 
> >>>> 
> >>>> Thanks Randall.
> >>>> 
> >>>> I was able to apply the patch - now rebuilding the kernel. Would update on
> >>>> how it goes.
> >>>> 
> >>>> 
> >>>> BTW, is there any description on how lack of tc_fq under FreeBSD is
> >>>> compensated here?
> >>>> 
> >>>> The original BBR patches on Linux show that as a must-have? Is that
> >>>> functionality implemented via tcp_ratelimit.[ch]?
> >>>> 
> >>>> 
> >>>> Any pointers to existing presentations/discussions highly appreciated?
> >>>> 
> >>>> 
> >>>> Thanks a lot.
> >>>> 
> >>>> 
> >>>> On Tue, Sep 17, 2019 at 5:39 AM Randall Stewart <rrs at netflix.com> wrote:
> >>>> 
> >>>> You should be able to compile it against the current head. I re-doing that
> >>>> now (had an
> >>>> 
> >>>> issue with my machine and had to roll it back to a backup).
> >>>> 
> >>>> 
> >>>> When I put the patch up on Sept 10th it complied with and without BBR on
> >>>> whatever
> >>>> 
> >>>> was that rev..
> >>>> 
> >>>> 
> >>>> Looking in the commit logs that would have been around 352191
> >>>> 
> >>>> 
> >>>> Hope that helps
> >>>> 
> >>>> 
> >>>> R
> >>>> 
> >>>> 
> >>>> On Sep 17, 2019, at 3:32 AM, vm finance <vm.finance2 at gmail.com> wrote:
> >>>> 
> >>>> 
> >>>> Hi Randall,
> >>>> 
> >>>> 
> >>>> Thanks for releasing BBR patch:
> >>>> 
> >>>> https://reviews.freebsd.org/D21582#change-xcAWBif3E9Jq
> >>>> 
> >>>> 
> >>>> Could you please let me know what SVN/GIT label tag this is based on? I
> >>>> would like to patch and experiment with it. I couldn't find this info in
> >>>> the released patch.
> >>>> 
> >>>> 
> >>>> Thanks a lot!
> >>>> 
> >>>> 
> >>>> On Tue, Sep 10, 2019 at 10:26 AM Ryan Stone <rysto32 at gmail.com> wrote:
> >>>> 
> >>>> rrs@ has just posted the BBR patch to phabricator:
> >>>> 
> >>>> 
> >>>> https://reviews.freebsd.org/D21582
> >>>> 
> >>>> 
> >>>> ------
> >>>> 
> >>>> Randall Stewart
> >>>> 
> >>>> rrs at netflix.com
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> ------
> >>>> 
> >>>> Randall Stewart
> >>>> 
> >>>> rrs at netflix.com
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> ------
> >>>> 
> >>>> Randall Stewart
> >>>> 
> >>>> rrs at netflix.com
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> ------
> >>>> 
> >>>> Randall Stewart
> >>>> 
> >>>> rrs at netflix.com
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> ------
> >>>> 
> >>>> Randall Stewart
> >>>> 
> >>>> rrs at netflix.com
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>>> ------
> >>>> Randall Stewart
> >>>> rrs at netflix.com
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>> _______________________________________________
> >>> freebsd-net at freebsd.org mailing list
> >>> https://lists.freebsd.org/mailman/listinfo/freebsd-net
> >>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
> > 
> > ------
> > Randall Stewart
> > rrs at netflix.com
> > 
> > 
> > 
> 
> ------
> Randall Stewart
> rrs at netflix.com
> 
> 
> 

------
Randall Stewart
rrs at netflix.com





More information about the freebsd-net mailing list