Date: Wed, 25 Sep 2019 14:28:16 -0700 From: Randall Stewart <rrs@netflix.com> To: =?utf-8?Q?Michael_T=C3=BCxen?= <michael.tuexen@lurchi.franken.de> Cc: vm finance <vm.finance2@gmail.com>, freebsd-net <freebsd-net@freebsd.org>, Jamie Landeg-Jones <jamie@catflap.org>, Ryan Stone <rysto32@gmail.com> Subject: Re: BBR patches? Message-ID: <D5EE43FD-83D2-4F0B-84C8-D02C271A8A63@netflix.com> In-Reply-To: <5B730D8C-D0CB-4CCF-94F2-E70A09BA8188@lurchi.franken.de> References: <CAKy-8=jUu=dbp1s7nhYBwgeh%2BiO-XY-YEnh1MJ81aYJoopVonA@mail.gmail.com> <201909091232.x89CWl4b047025@donotpassgo.dyslexicfish.net> <CAKy-8=gZ8E73PZdxb33aN=TmfigcNyTvZP4wP3M-mAy9no-v6w@mail.gmail.com> <CAFMmRNxbX5f3s0ZZk=Epr7Gu7%2Bsjat8F0TV0aX_RwoFgX0s%2ByA@mail.gmail.com> <CAKy-8=g=3LC8u_vc_3_Pfe6pgoUxpvx7N_j=xv7nRaM%2BD1Oz-A@mail.gmail.com> <D35AF884-C631-42CE-ABFD-F4AA76AA6693@netflix.com> <CAKy-8=jSdSFPJWL=cLeea-KSc=9wxR6vQTODibw7-GUh0XpCfw@mail.gmail.com> <27AD43DA-3237-490A-B3A6-C1792F9674E5@netflix.com> <CAKy-8=idqzA0-Trm%2B5gZSQs=vyXrPm40gP3AsbMf_YQj-NEHaA@mail.gmail.com> <CAKy-8=jpGvKU1khALK%2Ba5Ojp7btg7y1W%2BELtTLQaniVNtgBj3g@mail.gmail.com> <AD906F45-B083-476F-952E-3318F36BD828@netflix.com> <BCC20B79-ECEF-4D7C-AA7E-5F8A0869753A@netflix.com> <5B630235-ABC7-4122-9082-F59BCCCDE14A@netflix.com> <CAKy-8=jwoV8=gXXUCCMARe4%2BELuqDXuYY=J9Rn7ej0536xTJvQ@mail.gmail.com> <84C20AED-44B1-4673-A29E-1A6FA61D8F27@netflix.com> <DEA3139A-ED05-47D9-833E-F1631E7185AD@gmail.com> <CAKy-8=gAFZu0wWgWCNwuYDzKcyoLDwHgUPGNA%2BaLCucEfFrgYg@mail.gmail.com> <EE614FCD-C0B1-4934-98A5-F60C5054C077@lurchi.franken.de> <98E195A0-AFE2-4182-BE90-493E76A0DB1C@netflix.com> <9F3B0B5B-EF6A-42E1-99B8-9644DD0B39AB@netflix.com> <CAKy-8=gjXXz8VRkxaHXQY4Z%2BJpAkFusFbv_eFnM8huwWZgQD_g@mail.gmail.com> <CAKy-8=jH1LcWycm5tM3sZMvUL6ETBaZ_V4DdgKmHTPe7QyfPww@mail.gmail.com> <F9C36F36-8369-4318-86A2-2CC7865D87C2@netflix.com> <CAKy-8=jsqs6_LbX94zV4OT9hBJZLvC9tofu6JOEmV=AMb_=GWw@mail.gmail.com> <CAKy-8=iTC_hvJsjBpGgZMO6RWDF9Ak_RAv_KTeGOpKLZO-VUZg@mail.gmail.com> <8474687C-8E5D-45F0-A3DE-0BF62ED2D28B@netflix.com> <CAKy-8=hHDbGNHKESYBkhMfXaouJHWn%2BiV08ed2SdU4uoqDUcSg@mail.gmail.com> <CAKy-8=gDV0ZGYzXntmNNOtqiS76LNVi9yx8vVe=X_qq0G53uGg@mail.gmail.com> <C7333302-905E-4DCC-8CE8-4ED589BB3245@netflix.com> <CAKy-8=gARxeUxgKykc7TK3TBXG74CR4=J8rZ%2B3apsz_ngO-t5g@mail.gmail.com> <CALV9me1zTbG=x0v_zpGFz=Zb7EnB3Wm7KBCOxaVd1OPu6TBP8A@mail.gmail.com> <CAKy-8=jtQDjk-mSsT98iLAASu1RVYe=KRVQA5tHq0bEsEVT5Zg@mail.gmail.com> <CAKy-8=iRoMzCV8QaFoECBwdRa9CHiHPRK%2BdSbm99QKFju0FwhQ@mail.gmail.com> <E5103591-31E4-4025-9FCB-3B7FF1B9266B@lurchi.franken.de> <CAKy-8=hENMvRiiPS-LJinj4awxoKV6buvGxCo_kxAiH2MES%2BJg@mail.gmail.com> <79E10B99-7BD2-4D37-B1B3-49FB13923058@netflix.com> <5B730D8C-D0CB-4CCF-94F2-E70A09BA8188@lurchi.franken.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Hmm yeah I missed that.. VM=E2=80=99s do not work well when intricate timing = is involved.. which it is in HPTS at least. I would definitely think about opening up rwnd=E2=80=99s as well I know = google mentioned this in there work with BBR (rwnd=E2=80=99s were too small both send and recv) R > On Sep 25, 2019, at 2:23 PM, Michael Tuexen = <michael.tuexen@lurchi.franken.de> wrote: >=20 >> On 25. Sep 2019, at 22:41, Randall Stewart <rrs@netflix.com> wrote: >>=20 >>=20 >>=20 >>> On Sep 25, 2019, at 10:22 AM, vm finance <vm.finance2@gmail.com> = wrote: >>>=20 >>> Hi Randall, Michael, >>>=20 >>> I'm trying to run some tests between FreeBSD BBR VM and another = CentOS VM but don't see BBR performing well. FreeBSD (iperf -c) is = transmitting to CentOS (iperf -s) >>>=20 >>> Enable BBR ( sysctl -w net.inet.tcp.functions_default=3Dbbr) =3D> = 213Mb/s >>> [loaded tcp_bbr using "kldload tcp_bbr.ko"] >>>=20 >>> Enable FreeBSD ( sysctl -w net.inet.tcp.functions_default=3Dfreebsd) = =3D> 271Mb/s >>>=20 >>> Questions: >>> 1. Is there a way to track BBR internals on a running system? >>=20 >> Yes, there is a tcp logging function that can be used to turn on = things. The other >> relevant question in this are: >>=20 >> 1) What is the RTT=20 >> 2) Do you know your bottleneck router buffer size >> 3) What are the rwnd=E2=80=99s in play here. >>=20 >> There are known issues with BBR when it faces a high BDP (lots of = buffers), new-reno >> or cubic will do better.=20 >>=20 >> One other thing is if you are running from a web browser (like we do = at NF) then simply >> setting default sysctl works but you have to restart the web browser = if its running. >>=20 >> If its just a simpler=20 >>=20 >> set sysctl >> start-perf=20 >>=20 >> Then that should work. >>=20 >>=20 >>> 2. Is "sysctl -w net.inet.tcp.functions_default=3Dbbr" sufficient to = turn BBR on? >>>=20 >>=20 >>=20 >> See above. While the iperf is running you can do >>=20 >> sysctl net.inet.tcp.functions_available >>=20 >> and you should see a count by bbr showing its being used. > .. and doing such measurements with VMs adds another set of = variables... I would do such > measurements in non VM setups. Except you really want to study the = impact of running in > VMs. But I think this is not what you want... >=20 > Best regards > Michael >>=20 >> R >>=20 >>> Any pointers highly appreciated. >>>=20 >>> Thanks a lot! >>>=20 >>> On Fri, Sep 20, 2019 at 2:42 AM Michael Tuexen = <michael.tuexen@lurchi.franken.de> wrote: >>>> On 20. Sep 2019, at 06:52, vm finance <vm.finance2@gmail.com> = wrote: >>>>=20 >>>> Ok - kernel booted, I loaded the module and it loaded successfully = (kldstat shows tcp_bbr). >>>>=20 >>>> So if I want to compare results between bbr and default cc algo, I = just need to load/unload the bbr module - correct? >>>> Or is there another way to achieve that? >>> One option is that your test application supports choosing the TCP = stack and you compare "freebsd" with "bbr". >>> One tools which supports this is uperf and here is an example how to = select the (not existing anymore) >>> stack called "fastack"): = https://github.com/uperf/uperf/blob/master/workloads/tcp-freebsd-change-st= ack.xml >>>=20 >>> The other possibility is that you set your default TCP stack before = running your test app. You can so this >>> by executing >>> sudo sysctl -w net.inet.tcp.functions_default=3Dbbr >>> or >>> sudo sysctl -w net.inet.tcp.functions_default=3Dfreebsd >>> Then you test application can be TCP stack agnostic. >>>=20 >>> Best regards >>> Michael >>>=20 >>>>=20 >>>> Please let me know. >>>>=20 >>>> Thanks for all your help. >>>>=20 >>>> On Fri, Sep 20, 2019 at 4:26 AM vm finance <vm.finance2@gmail.com> = wrote: >>>> finally ;) I was able to build it after manually extracting = Makefile contents from patch. >>>> rebooting now ;) >>>>=20 >>>> On Thu, Sep 19, 2019 at 8:12 PM Randall Stewart <rrs@netflix.com> = wrote: >>>> There should have been some in the patch. Tomorrow I can send you a = tar of the modules/tcp/bbr Dir.=20 >>>>=20 >>>> It=E2=80=99s similar to the rack setup if you can=E2=80=99t wait = and want to be adventurous=20 >>>>=20 >>>> R >>>>=20 >>>> Sent from my iPhone >>>>=20 >>>> On Sep 19, 2019, at 7:31 PM, vm finance <vm.finance2@gmail.com> = wrote: >>>>=20 >>>> Hi Randall, >>>>=20 >>>> I already have tcp_bbr.h and bbr.c at ~sys/netinet/tcp_stacks/ >>>>=20 >>>> However, there is no "bbr" under sys/modules/tcp/. I created this = directory manually. >>>> Question: >>>> Which Makefile do I need to copy/move under sys/modules/tcp/bbr?=20 >>>> I see there are Makefile and Makefile.org under ~modules/tcp... >>>>=20 >>>> root@osboxes:/usr/src/sys/modules/tcp # ls -R >>>> Makefile Makefile.orig bbr rack = tcpmd5 >>>> ./bbr: >>>>=20 >>>> ./rack: >>>> Makefile >>>>=20 >>>> ./tcpmd5: >>>> Makefile >>>>=20 >>>> Please let me know. >>>>=20 >>>> Thanks for your help! >>>>=20 >>>> On Thu, Sep 19, 2019 at 11:05 AM Randall Stewart <rrs@netflix.com> = wrote: >>>> Ahh.. Look in your directory. >>>>=20 >>>> You did not create the sub=E2=80=99dirs or put rack.c or bbr.c into = the right places >>>>=20 >>>> When you load the patch (which was updated Sept 17th and should be = different slightly) >>>> you will end up dropping a Makefile and bbr.c and tcp_bbr.h into = the local dir since >>>> for what every reason patch cannot figure out how to place it. >>>>=20 >>>> You must move=20 >>>>=20 >>>> bbr.c/tcp_bbr.h to -> sys/netinet/tcp_stacks >>>>=20 >>>> You must create >>>>=20 >>>> sys/modules/tcp/bbr >>>>=20 >>>> and=20 >>>>=20 >>>> place the make file under there (just like rack=E2=80=99s). >>>>=20 >>>> Do that and I think you will finally have it.. not sure why patch = is not able to >>>> put the new files in the right places :0 >>>>=20 >>>> R >>>>=20 >>>>> On Sep 19, 2019, at 10:42 AM, vm finance <vm.finance2@gmail.com> = wrote: >>>>>=20 >>>>> Hello Randall, >>>>>=20 >>>>> I just retried it with headvm config that you had shared but still = see error while doing >>>>> "make cleandepend" >>>>>=20 >>>>> Any pointers highly appreciated. >>>>>=20 >>>>> Thanks >>>>>=20 >>>>> root@osboxes:/usr/src/sys/amd65/compile/headvm # make cleandepend=20= >>>>> [...snip...] >>>>>=20 >>>>> =3D=3D=3D> sysvipc/sysvshm (obj) >>>>> = /usr/src/sys/amd64/compile/headvm/modules/usr/src/sys/modules/sysvipc/sysv= shm created for /usr/src/sys/modules/sysvipc/sysvshm >>>>> =3D=3D=3D> tcp (obj) >>>>> =3D=3D=3D> tcp/bbr (obj) >>>>> cd: /usr/src/sys/modules/tcp/bbr: No such file or directory >>>>> *** Error code 2 >>>>>=20 >>>>> Stop. >>>>> make[2]: stopped in /usr/src/sys/modules/tcp >>>>> *** Error code 1 >>>>>=20 >>>>> Stop. >>>>> make[1]: stopped in /usr/src/sys/modules >>>>> *** Error code 1 >>>>>=20 >>>>> Stop. >>>>> make: stopped in /usr/src/sys/amd64/compile/headvm >>>>> root@osboxes:/usr/src/sys/amd64/compile/headvm #=20 >>>>>=20 >>>>>=20 >>>>> On Wed, Sep 18, 2019 at 11:08 PM vm finance = <vm.finance2@gmail.com> wrote: >>>>> Hi Randall, >>>>>=20 >>>>> I applied the patch available at:=20 >>>>> https://reviews.freebsd.org/D21582?id=3D62213 >>>>> NOTE: This raw patch seems to be exactly the same as the one I = downloaded on Sep10...hope I'm not missing anything here... >>>>>=20 >>>>> I clicked on "download raw diff" and saved it to bbr_patch.diff = file on my local machine >>>>> Step 1: Apply PATCH: >>>>> cd /usr/src/sys >>>>> patch < bbr_patch.diff >>>>> Patch was applied successfully - no errors seen there. >>>>>=20 >>>>> Step 2: Update kernel config: >>>>> cp /usr/src/sys/amd64/conf/GENERIC = /usr/src/sys/amd64/conf/MYKERNEL=20 >>>>> Added three options to MYKERNEL (per ur email - I have also = attached the compile MYKERNEL file) >>>>> cd /usr/src/sys/amd64/compile/MYKERNEL >>>>> make cleandepend >>>>> =3D>This fails due to missing "bbr" under = /usr/src/sys/modules/tcp/ >>>>> [pls find the attached log file for exact error] >>>>>=20 >>>>> make depend >>>>> =3D> This also fails due to missing "/usr/src/sys/modules/tcp/bbr" >>>>>=20 >>>>> STEP 3: >>>>> cd /usr/src/ >>>>> make buildkernel KERNCONF=3DMYKERNEL >>>>> This also fails due to prior errors in Step 2. >>>>>=20 >>>>> Please find MYKERNEL config file + error logs. >>>>>=20 >>>>> Many many thanks for taking time to help me through this! >>>>>=20 >>>>> PS: I did a make buildkernel without any KERNCONF=3DMYKERNEL, and = that successfully finished. >>>>>=20 >>>>>=20 >>>>>=20 >>>>> On Thu, Sep 19, 2019 at 12:19 PM Randall Stewart <rrs@netflix.com> = wrote: >>>>> You can look in the config I sent.. but here is what >>>>> I have added to enable BBR and Rack to be built >>>>> ***** >>>>> makeoptions WITH_EXTRA_TCP_STACKS=3D1 >>>>> options TCPHPTS=20 >>>>> options RATELIMIT >>>>> ****** >>>>>=20 >>>>> So you should >>>>> 1) Apply the current patch in phabricator >>>>> 2) edit your config and add the above three lines >>>>> 3) go to the src dir and type >>>>> make buildkernel KERNCONF=3Dmyconf >>>>>=20 >>>>> That should build and get you a kernel that will include bbr and = rack. You will >>>>> need to, after it boots up type >>>>>=20 >>>>> kldload tcp_bbr >>>>>=20 >>>>> or >>>>>=20 >>>>> kldload tcp_rack >>>>>=20 >>>>> To get the modules loaded >>>>>=20 >>>>> R >>>>>=20 >>>>>=20 >>>>>=20 >>>>>> On Sep 18, 2019, at 2:31 PM, vm finance <vm.finance2@gmail.com> = wrote: >>>>>>=20 >>>>>> Hi Randall, Michael, >>>>>>=20 >>>>>> Build is done successfully. I would appreciate if you could share = config changes needed for BBR. >>>>>>=20 >>>>>> My svn revision is: 352483 >>>>>>=20 >>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D >>>>>> awk -f /usr/src/sys/conf/kmod_syms.awk zlib.ko.full export_syms = | xargs -J% objcopy % zlib.ko.full >>>>>> objcopy --only-keep-debug zlib.ko.full zlib.ko.debug >>>>>> objcopy --strip-debug --add-gnu-debuglink=3Dzlib.ko.debug = zlib.ko.full zlib.ko >>>>>> -------------------------------------------------------------- >>>>>>>>> Kernel build for GENERIC completed on Wed Sep 18 21:08:31 UTC = 2019 >>>>>> -------------------------------------------------------------- >>>>>>>>> Kernel(s) GENERIC built in 1972 seconds, ncpu: 4 >>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D >>>>>>=20 >>>>>> Thank you >>>>>> Vishal. >>>>>>=20 >>>>>>=20 >>>>>> On Wed, Sep 18, 2019 at 3:34 PM vm finance = <vm.finance2@gmail.com> wrote: >>>>>> I'm using amd64. I'd get back as soon as base build is complete. >>>>>>=20 >>>>>> Thanks! >>>>>>=20 >>>>>> On Wed, Sep 18, 2019 at 7:09 AM Randall Stewart <rrs@netflix.com> = wrote: >>>>>> To get bbr running you will need to change your kernel config. >>>>>>=20 >>>>>> Are you building i386 or amd64? >>>>>>=20 >>>>>> After you have successfully did=20 >>>>>>=20 >>>>>> 1) buildworld >>>>>> 2) buildkernel >>>>>> 3) installkernel >>>>>>=20 >>>>>> (you can look in UPDATING for instructions .. though the file is = long :D) >>>>>>=20 >>>>>> successfully let me know.. and then I will give you the tweaks = you need to add >>>>>> to the kerneconf. >>>>>>=20 >>>>>> It won=E2=80=99t 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 >>>>>>=20 >>>>>> R >>>>>>=20 >>>>>>> On Sep 18, 2019, at 7:06 AM, vm finance <vm.finance2@gmail.com> = wrote: >>>>>>>=20 >>>>>>> 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.=20= >>>>>>> Nothing fancy. >>>>>>>=20 >>>>>>> thanks! >>>>>>>=20 >>>>>>> On Wed, Sep 18, 2019 at 7:03 AM vm finance = <vm.finance2@gmail.com> wrote: >>>>>>> Thanks Randall, Michael, >>>>>>>=20 >>>>>>> I did "svn svn://svn.freebsd.org/base/head /usr/src" >>>>>>> and now doing "make buildworld buildkernel"=20 >>>>>>> [I didn't change anything in configs - just whatever are the = defaults] >>>>>>>=20 >>>>>>> I would update as soon as its done. >>>>>>>=20 >>>>>>> Thanks again! >>>>>>>=20 >>>>>>> On Wed, Sep 18, 2019 at 6:53 AM Randall Stewart = <rrs@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. >>>>>>>=20 >>>>>>> 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=E2=80=A6.=20 >>>>>>>=20 >>>>>>> But I would suggest to build with his current config first and = once he has >>>>>>> that in place and building >>>>>>>=20 >>>>>>> a) apply the patch >>>>>>> b) add the extra kernel options >>>>>>>=20 >>>>>>> R >>>>>>>=20 >>>>>>>> On Sep 18, 2019, at 6:50 AM, Randall Stewart <rrs@netflix.com> = wrote: >>>>>>>>=20 >>>>>>>> Thats great idea Michael. >>>>>>>>=20 >>>>>>>> =46rom the look fo the build log I was sent, his blow-up has = nothing to do >>>>>>>> with the patches. >>>>>>>>=20 >>>>>>>> He should probably >>>>>>>>=20 >>>>>>>> 1) Check out a fresh version of head. >>>>>>>> 2) Follow the instructions in UPDATING to get a clean build. >>>>>>>> =E2=80=94 make buildworld >>>>>>>> =E2=80=94 make buildkernel KERNCONF=3Dhis-conf >>>>>>>> =E2=80=94 make installkernel KERNCONF=3Dhis-conf >>>>>>>>=20 >>>>>>>> ** do the reboot and merge master ** >>>>>>>>=20 >>>>>>>> Then after that he could >>>>>>>>=20 >>>>>>>> 3) Apply the current patch in the review >>>>>>>> 4) do build that >>>>>>>> =E2=80=94 make buildkernel KERNCONF=3Dhis_conf -DNO_CLEAN = -DNO_CLEANDIR >>>>>>>> =E2=80=94 make install kernel KERNCONF=3Dhis_conf >>>>>>>>=20 >>>>>>>> And he should have it all working :) >>>>>>>>=20 >>>>>>>> I have done multiple builds with the latest head from yesterday = both with and without >>>>>>>> the extra stacks and hpts.. and I can=E2=80=99t get a build = failure.. this would verify he can >>>>>>>> at least build head.. >>>>>>>>=20 >>>>>>>> R >>>>>>>>=20 >>>>>>>>> On Sep 18, 2019, at 12:10 AM, Michael Tuexen = <michael.tuexen@lurchi.franken.de> wrote: >>>>>>>>>=20 >>>>>>>>>> On 18. Sep 2019, at 08:19, vm finance <vm.finance2@gmail.com> = wrote: >>>>>>>>>>=20 >>>>>>>>>> correcting a typo: >>>>>>>>>>=20 >>>>>>>>>> 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. >>>>>>>>>=20 >>>>>>>>> Best regards >>>>>>>>> Michael >>>>>>>>>>=20 >>>>>>>>>> Thank you! >>>>>>>>>>=20 >>>>>>>>>> On Tue, Sep 17, 2019 at 10:11 PM vm finance = <vm.finance2@gmail.com> wrote: >>>>>>>>>>=20 >>>>>>>>>>> Actually I am on head already as mentioned previously. = Pulled it using >>>>>>>>>>> yesterday: >>>>>>>>>>>=20 >>>>>>>>>>> svn co svn://svn.freebsd.org/base/head /use/src >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> If you could pls let me know the new patch, I can try that. >>>>>>>>>>>=20 >>>>>>>>>>> Thanks >>>>>>>>>>>=20 >>>>>>>>>>> Sent from my iPhone >>>>>>>>>>>=20 >>>>>>>>>>> On 18-Sep-2019, at 8:56 AM, Randall Stewart = <rrs@netflix.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>> There have been several patches pre-this one that provide >>>>>>>>>>> the infrastructure to support BBR. >>>>>>>>>>>=20 >>>>>>>>>>> Release 12.0 will *not* have these patches and will *not* = compile it. >>>>>>>>>>>=20 >>>>>>>>>>> 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 >>>>>>>>>>>=20 >>>>>>>>>>> R >>>>>>>>>>>=20 >>>>>>>>>>> On Sep 17, 2019, at 7:26 PM, vm finance = <vm.finance2@gmail.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Hi Randall, >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Could you please provide a pointer to the latest patch. I = had applied the >>>>>>>>>>> one you published Sep-10. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Following is what I have done: >>>>>>>>>>>=20 >>>>>>>>>>> 1. Picked FreeBSD 12.0 RELEASE VM from osboxes.org >>>>>>>>>>>=20 >>>>>>>>>>> 2. Got VM up under VMPlayer on x86 laptop >>>>>>>>>>>=20 >>>>>>>>>>> 3. Checked out latest codebase from freebsd repo: >>>>>>>>>>>=20 >>>>>>>>>>> svn co svn://svn.freebsd.org/base/head /usr/src* >>>>>>>>>>>=20 >>>>>>>>>>> cd /usr/src; >>>>>>>>>>>=20 >>>>>>>>>>> make buildworld buildkernel >>>>>>>>>>>=20 >>>>>>>>>>> [this is where make fails when patch is applied] >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> I could try to build with your latest patch - please send me = a pointer. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Thanks for your help! >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Tue, Sep 17, 2019 at 1:33 PM Randall Stewart = <rrs@netflix.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>> Looking at your make file log I can=E2=80=99t really tell = what you are doing. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Its not the BBR or Rack code that is blowing up=E2=80=A6 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Are you cross compiling? >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> I have done the old fashioned kernel make >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> i.e. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> cd src/sys/amd64/config >>>>>>>>>>>=20 >>>>>>>>>>> config headvm >>>>>>>>>>>=20 >>>>>>>>>>> cd ../compile/headvm >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> make cleandepend ; make depend; make -j3 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> I have done >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> cd src >>>>>>>>>>>=20 >>>>>>>>>>> make buildkernel KERNCONF=3Dheadvm >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> And even >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> make buildkernel KERNCONF=3DGENERIC >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> to make sure that the build works without bbr. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> I attach my headvm config.. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> What exactly are you building and how? kernel config too = please? >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> R >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Sep 17, 2019, at 1:11 PM, Randall Stewart = <rrs@netflix.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> looking >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> I was at 352408.. let me update and try it >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> R >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Sep 17, 2019, at 1:10 PM, Randall Stewart = <rrs@netflix.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Hmm >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Did you get the patch I updated too this am? >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> I have built it both with and without the bbr stack and had = no issue.. >>>>>>>>>>> there was >>>>>>>>>>>=20 >>>>>>>>>>> an issue with KTLS before the update though. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> I don=E2=80=99t recognize what you have below there = though=E2=80=A6 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> R >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Sep 17, 2019, at 11:47 AM, vm finance = <vm.finance2@gmail.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Got it - thank you! >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> btw, I tried to build the patch but its giving an error. = Following is SVN >>>>>>>>>>> info + make error mesg. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Please let me know what am I missing here? >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Thanks! >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> #svnlite revision >>>>>>>>>>>=20 >>>>>>>>>>> Path: . >>>>>>>>>>>=20 >>>>>>>>>>> Working Copy Root Path: /usr/src >>>>>>>>>>>=20 >>>>>>>>>>> URL: svn://svn.freebsd.org/base/head >>>>>>>>>>>=20 >>>>>>>>>>> Relative URL: ^/head >>>>>>>>>>>=20 >>>>>>>>>>> Repository Root: svn://svn.freebsd.org/base >>>>>>>>>>>=20 >>>>>>>>>>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f >>>>>>>>>>>=20 >>>>>>>>>>> Revision: 352436 >>>>>>>>>>>=20 >>>>>>>>>>> Node Kind: directory >>>>>>>>>>>=20 >>>>>>>>>>> Schedule: normal >>>>>>>>>>>=20 >>>>>>>>>>> Last Changed Author: jah >>>>>>>>>>>=20 >>>>>>>>>>> Last Changed Rev: 352434 >>>>>>>>>>>=20 >>>>>>>>>>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep = 2019) >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> root@osboxes:/usr/src # >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> -------------------------------------------- snip >>>>>>>>>>> ---------------------------- >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo = dev_net.llo >>>>>>>>>>> bcache.llo interp_simple.llo zfs_cmd.llo >>>>>>>>>>>=20 >>>>>>>>>>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS >>>>>>>>>>>=20 >>>>>>>>>>> =3D=3D=3D> sys (cleandir) >>>>>>>>>>>=20 >>>>>>>>>>> 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 >>>>>>>>>>>=20 >>>>>>>>>>> rm: x86: is a directory >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make[3]: stopped in /usr/src/sys >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make[2]: stopped in /usr/src >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make[1]: stopped in /usr/src >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make: stopped in /usr/src >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Tue, Sep 17, 2019 at 6:41 PM vm finance = <vm.finance2@gmail.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>> Got it - thank you! >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> btw, I tried to build the patch but its giving an error. = Following is SVN >>>>>>>>>>> info + make error mesg. >>>>>>>>>>>=20 >>>>>>>>>>> I have also attached the entire build log...snippet is below >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Please let me know what am I missing here? >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Thanks! >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> #svnlite revision >>>>>>>>>>>=20 >>>>>>>>>>> Path: . >>>>>>>>>>>=20 >>>>>>>>>>> Working Copy Root Path: /usr/src >>>>>>>>>>>=20 >>>>>>>>>>> URL: svn://svn.freebsd.org/base/head >>>>>>>>>>>=20 >>>>>>>>>>> Relative URL: ^/head >>>>>>>>>>>=20 >>>>>>>>>>> Repository Root: svn://svn.freebsd.org/base >>>>>>>>>>>=20 >>>>>>>>>>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f >>>>>>>>>>>=20 >>>>>>>>>>> Revision: 352436 >>>>>>>>>>>=20 >>>>>>>>>>> Node Kind: directory >>>>>>>>>>>=20 >>>>>>>>>>> Schedule: normal >>>>>>>>>>>=20 >>>>>>>>>>> Last Changed Author: jah >>>>>>>>>>>=20 >>>>>>>>>>> Last Changed Rev: 352434 >>>>>>>>>>>=20 >>>>>>>>>>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep = 2019) >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> root@osboxes:/usr/src # >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> -------------------------------------------- snip >>>>>>>>>>> ---------------------------- >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo = dev_net.llo >>>>>>>>>>> bcache.llo interp_simple.llo zfs_cmd.llo >>>>>>>>>>>=20 >>>>>>>>>>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS >>>>>>>>>>>=20 >>>>>>>>>>> =3D=3D=3D> sys (cleandir) >>>>>>>>>>>=20 >>>>>>>>>>> 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 >>>>>>>>>>>=20 >>>>>>>>>>> rm: x86: is a directory >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make[3]: stopped in /usr/src/sys >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make[2]: stopped in /usr/src >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make[1]: stopped in /usr/src >>>>>>>>>>>=20 >>>>>>>>>>> *** Error code 1 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Stop. >>>>>>>>>>>=20 >>>>>>>>>>> make: stopped in /usr/src >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Tue, Sep 17, 2019 at 6:27 PM Randall Stewart = <rrs@netflix.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>> Pacing is provided by tcp_hpts.c. The current linux patches = do not have >>>>>>>>>>>=20 >>>>>>>>>>> to have fq.. they built an alternate means of doing pacing = into bbr. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> In either case our testing has shown that our pacing is more = accurate than >>>>>>>>>>>=20 >>>>>>>>>>> either fq or the internal pacer :) >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> R >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Sep 17, 2019, at 11:05 AM, vm finance = <vm.finance2@gmail.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Thanks Randall. >>>>>>>>>>>=20 >>>>>>>>>>> I was able to apply the patch - now rebuilding the kernel. = Would update on >>>>>>>>>>> how it goes. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> BTW, is there any description on how lack of tc_fq under = FreeBSD is >>>>>>>>>>> compensated here? >>>>>>>>>>>=20 >>>>>>>>>>> The original BBR patches on Linux show that as a must-have? = Is that >>>>>>>>>>> functionality implemented via tcp_ratelimit.[ch]? >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Any pointers to existing presentations/discussions highly = appreciated? >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Thanks a lot. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Tue, Sep 17, 2019 at 5:39 AM Randall Stewart = <rrs@netflix.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>> You should be able to compile it against the current head. I = re-doing that >>>>>>>>>>> now (had an >>>>>>>>>>>=20 >>>>>>>>>>> issue with my machine and had to roll it back to a backup). >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> When I put the patch up on Sept 10th it complied with and = without BBR on >>>>>>>>>>> whatever >>>>>>>>>>>=20 >>>>>>>>>>> was that rev.. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Looking in the commit logs that would have been around = 352191 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Hope that helps >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> R >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Sep 17, 2019, at 3:32 AM, vm finance = <vm.finance2@gmail.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Hi Randall, >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Thanks for releasing BBR patch: >>>>>>>>>>>=20 >>>>>>>>>>> https://reviews.freebsd.org/D21582#change-xcAWBif3E9Jq >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> 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. >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> Thanks a lot! >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> On Tue, Sep 10, 2019 at 10:26 AM Ryan Stone = <rysto32@gmail.com> wrote: >>>>>>>>>>>=20 >>>>>>>>>>> rrs@ has just posted the BBR patch to phabricator: >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> https://reviews.freebsd.org/D21582 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ------ >>>>>>>>>>>=20 >>>>>>>>>>> Randall Stewart >>>>>>>>>>>=20 >>>>>>>>>>> rrs@netflix.com >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ------ >>>>>>>>>>>=20 >>>>>>>>>>> Randall Stewart >>>>>>>>>>>=20 >>>>>>>>>>> rrs@netflix.com >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ------ >>>>>>>>>>>=20 >>>>>>>>>>> Randall Stewart >>>>>>>>>>>=20 >>>>>>>>>>> rrs@netflix.com >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ------ >>>>>>>>>>>=20 >>>>>>>>>>> Randall Stewart >>>>>>>>>>>=20 >>>>>>>>>>> rrs@netflix.com >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ------ >>>>>>>>>>>=20 >>>>>>>>>>> Randall Stewart >>>>>>>>>>>=20 >>>>>>>>>>> rrs@netflix.com >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> ------ >>>>>>>>>>> Randall Stewart >>>>>>>>>>> rrs@netflix.com >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>> _______________________________________________ >>>>>>>>>> freebsd-net@freebsd.org mailing list >>>>>>>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-net >>>>>>>>>> To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org" >>>>>>>>=20 >>>>>>>> ------ >>>>>>>> Randall Stewart >>>>>>>> rrs@netflix.com >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>=20 >>>>>>> ------ >>>>>>> Randall Stewart >>>>>>> rrs@netflix.com >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>=20 >>>>>> ------ >>>>>> Randall Stewart >>>>>> rrs@netflix.com >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>=20 >>>>> ------ >>>>> Randall Stewart >>>>> rrs@netflix.com >>>>>=20 >>>>>=20 >>>>>=20 >>>>=20 >>>> ------ >>>> Randall Stewart >>>> rrs@netflix.com >>>>=20 >>>>=20 >>>>=20 >>>=20 >>=20 >> ------ >> Randall Stewart >> rrs@netflix.com ------ Randall Stewart rrs@netflix.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D5EE43FD-83D2-4F0B-84C8-D02C271A8A63>