Page MenuHomeFreeBSD

rrs (Randall Stewart)
User

Projects

User Details

User Since
Jan 22 2015, 5:22 AM (202 w, 4 d)

Recent Activity

Thu, Nov 29

rrs accepted D18366: Limit option_len for the TCP_CCALGOOPT option.
Thu, Nov 29, 5:19 PM
rrs accepted D18375: Improve receive window autoscaling for TCP.
Thu, Nov 29, 5:19 PM

Wed, Nov 21

rrs accepted D18021: Improve KASSERTs in rack.c.

Good catch Michael!!!

Wed, Nov 21, 12:30 PM

Tue, Nov 20

rrs accepted D18033: TCP RACK stack should honor net.inet.tcp.drop_synfin sysctl variable.

Looks good to me :)

Tue, Nov 20, 11:01 PM
rrs accepted D18032: Support RTT measurement even if switching from the rack stack to the base stack.
Tue, Nov 20, 9:36 PM
rrs accepted D18034: The TCP RACK stack need to verify SEG.ACK first when in SYS-SENT state.
Tue, Nov 20, 1:07 PM
rrs added inline comments to D18032: Support RTT measurement even if switching from the rack stack to the base stack.
Tue, Nov 20, 12:59 PM
rrs accepted D18021: Improve KASSERTs in rack.c.
Tue, Nov 20, 12:57 PM
rrs accepted D17949: Advertise a zero window when sending TCP RST segments via tcp_output().

This looks fine Michael :)

Tue, Nov 20, 12:53 PM

Oct 18 2018

rrs accepted D17595: Fix handling of RST segments in SYN-RCVD state via the syn cache code path.
Oct 18 2018, 6:04 PM

Oct 16 2018

rrs accepted D17588: Fix TCP module unloading code to work with epoch(9) changes.
Oct 16 2018, 6:10 PM

Aug 28 2018

rrs accepted D16912: Fix TCP Fast Open for TCP RACK.
Aug 28 2018, 5:00 AM

Aug 27 2018

rrs added inline comments to D16912: Fix TCP Fast Open for TCP RACK.
Aug 27 2018, 3:07 PM
rrs accepted D16891: Make tcp_hpts compile with option RSS.

Because in order to conserve space the fid in the in_pcb (IIRR) is a uint16_t.. I was thinking
64k cpu's is probably enough for now :)

Aug 27 2018, 2:55 PM

Aug 21 2018

rrs accepted D16791: Add support for SO_DOMAIN in getsockopt().
Aug 21 2018, 1:23 PM
rrs accepted D16792: Fix inheritance of IPv6 options.
Aug 21 2018, 1:22 PM
rrs accepted D16796: Fix IPV6_USE_MIN_MTU socket option for TCP sockets.
Aug 21 2018, 1:22 PM

Aug 20 2018

rrs committed rS338102: This change represents a substantial restructure of the way we.
This change represents a substantial restructure of the way we
Aug 20 2018, 12:43 PM
rrs closed D16626: Rewrite of TCP Reassembly code.
Aug 20 2018, 12:43 PM

Aug 18 2018

rrs added inline comments to D16626: Rewrite of TCP Reassembly code.
Aug 18 2018, 7:17 PM
rrs updated the diff for D16626: Rewrite of TCP Reassembly code.

Fix the silly cut and paste bug.

Aug 18 2018, 7:15 PM
rrs updated the diff for D16626: Rewrite of TCP Reassembly code.

This version incorporates all of Jonathans comments and suggested improvements. Thanks
Jonathan!!!

Aug 18 2018, 7:01 AM

Aug 10 2018

rrs updated the diff for D16626: Rewrite of TCP Reassembly code.

This version updates from the last to include all of Lawrence Stewarts comments
as well as those from Peter Lei. A significant change is altering the calculate
overhead function to also glean the mlast so that a second walk of the mbuf
chain is no longer needed.

Aug 10 2018, 11:59 AM

Aug 9 2018

rrs accepted D16636: Improve TCP timestamps.
Aug 9 2018, 10:11 AM
rrs accepted D16637: Remove ipsec includes from tcp_hpts.
Aug 9 2018, 10:10 AM
rrs updated the diff for D16626: Rewrite of TCP Reassembly code.

Fixes an accounting problem shown by testing

Aug 9 2018, 10:07 AM

Aug 8 2018

rrs updated the diff for D16626: Rewrite of TCP Reassembly code.

Testing with INVAR found a problem with my late morning last optimization. If the
seq is behind us but overlaps we can't do the optimization.

Aug 8 2018, 8:59 PM
rrs created D16626: Rewrite of TCP Reassembly code.
Aug 8 2018, 2:25 PM
rrs closed D16604: Rack sends extra FIN.
Aug 8 2018, 1:37 PM
rrs committed rS337455: Fix a small bug in rack where it will.
Fix a small bug in rack where it will
Aug 8 2018, 1:37 PM

Aug 6 2018

rrs created D16604: Rack sends extra FIN.
Aug 6 2018, 9:32 AM
rrs closed D16579: Rack delayed ack issue.
Aug 6 2018, 9:22 AM
rrs committed rS337375: This fixes a bug in Rack where we were.
This fixes a bug in Rack where we were
Aug 6 2018, 9:22 AM

Aug 5 2018

rrs updated the diff for D16579: Rack delayed ack issue.

Update my typo :)

Aug 5 2018, 11:47 AM
rrs added inline comments to D16579: Rack delayed ack issue.
Aug 5 2018, 11:45 AM

Aug 3 2018

rrs created D16579: Rack delayed ack issue.
Aug 3 2018, 11:48 AM

Jul 31 2018

rrs accepted D16377: Add dtrace network provider for UDP-Lite.
Jul 31 2018, 7:01 PM

Jul 30 2018

rrs accepted D16369: Add missing dtrace receive and send probes for TCP.
Jul 30 2018, 12:00 PM
rrs closed D16453: When data after close is on, you can mess up the reassm queue.
Jul 30 2018, 10:24 AM
rrs committed rS336893: This fixes a hole where rack could end up.
This fixes a hole where rack could end up
Jul 30 2018, 10:23 AM
rrs accepted D16503: Send consistent SEG.WIN when sending from the timewait code path.
Jul 30 2018, 10:19 AM
rrs accepted D16458: Allow implicit connection setup for TCP/IPv6.
Jul 30 2018, 10:17 AM
rrs accepted D16485: Fix some TCP fast open issues.
Jul 30 2018, 10:13 AM

Jul 26 2018

rrs created D16453: When data after close is on, you can mess up the reassm queue.
Jul 26 2018, 11:00 AM

Jul 24 2018

rrs committed rS336672: Delete the example tcp stack "fastpath" which.
Delete the example tcp stack "fastpath" which
Jul 24 2018, 2:56 PM
rrs closed D16420: Fastpath was a temp holder to give as an example and now needs to disappear.
Jul 24 2018, 2:56 PM
rrs updated the diff for D16420: Fastpath was a temp holder to give as an example and now needs to disappear.
Jul 24 2018, 1:27 PM
rrs created D16420: Fastpath was a temp holder to give as an example and now needs to disappear.
Jul 24 2018, 1:22 PM

Jul 19 2018

rrs accepted D16046: Add UDP receive probes.
Jul 19 2018, 3:36 PM

Jul 18 2018

rrs committed rS336465: Bump the ICMP echo limits to match the RFC.
Bump the ICMP echo limits to match the RFC
Jul 18 2018, 10:50 PM
rrs closed D16333: The ICMP echo is too small.
Jul 18 2018, 10:50 PM
rrs created D16333: The ICMP echo is too small.
Jul 18 2018, 10:46 PM

Jul 12 2018

rrs accepted D16201: acquire inp lock around ip6_pcbopt to fix IPV6_TCLASS panic.
Jul 12 2018, 4:26 PM

Jun 21 2018

rrs committed rS335502: This adds in an optimization so that we only walk one.
This adds in an optimization so that we only walk one
Jun 21 2018, 9:04 PM
rrs closed D15937: Optimize the TSO and copy paths to use the new tcp_m_copy routine.
Jun 21 2018, 9:04 PM

Jun 20 2018

rrs created D15937: Optimize the TSO and copy paths to use the new tcp_m_copy routine.
Jun 20 2018, 8:29 PM

Jun 19 2018

rrs committed rS335364: Make sure that the t_peakrate_thr is not compiled in.
Make sure that the t_peakrate_thr is not compiled in
Jun 19 2018, 11:20 AM
rrs committed rS335361: Move the tp set back to where it was before.
Move the tp set back to where it was before
Jun 19 2018, 5:28 AM

Jun 18 2018

rrs committed rS335317: Move to using the inp->vnet pointer has suggested by lstewart..
Move to using the inp->vnet pointer has suggested by lstewart.
Jun 18 2018, 2:10 PM

Jun 14 2018

rrs committed rS335106: This fixes several bugs that Larry Rosenman helped me find in.
This fixes several bugs that Larry Rosenman helped me find in
Jun 14 2018, 3:27 AM
rrs closed D15758: Rack crash that Larry Rosenman found...
Jun 14 2018, 3:27 AM

Jun 12 2018

rrs closed D15757: HPTS Is missing some support for Vnets.
Jun 12 2018, 11:54 PM
rrs committed rS335022: This fixes missing VNET sets in the hpts system. Basically.
This fixes missing VNET sets in the hpts system. Basically
Jun 12 2018, 11:54 PM
rrs updated the diff for D15758: Rack crash that Larry Rosenman found...

Turns out after looking at Larry's last core and contemplating it a bit if it
would have succeeded (which it did not) we would have crashed anyway.
This is because the SYN got included in the send_map and we would have
tried to trim 14 instead of the 13 that bytes in the socketbuffer. Fixing that
means the send_map cannot start at snd_una for the TFO case. This means
a bit more special code needs also to be added to the SYN_SENT case then
so you end up incrementing snd_una when you move to established and that
way when you call the ack processing code all will be well :)

Jun 12 2018, 11:59 AM
rrs updated the diff for D15758: Rack crash that Larry Rosenman found...

So this is weird we look like we sent a TFO and then hit a retransmit.. but somehow
the TFO flags was removed so we did not set len == 0 on having a SYN retransmitted.

Jun 12 2018, 5:58 AM

Jun 11 2018

rrs updated the diff for D15758: Rack crash that Larry Rosenman found...
Jun 11 2018, 11:24 PM
rrs updated the diff for D15757: HPTS Is missing some support for Vnets.

Get the vnet set much earlier and all the right bits around earlier too.

Jun 11 2018, 3:18 PM
rrs created D15758: Rack crash that Larry Rosenman found...
Jun 11 2018, 12:39 PM
rrs created D15757: HPTS Is missing some support for Vnets.
Jun 11 2018, 12:35 PM
rrs accepted D15756: Change RACK dependency on TCPHPTS from build-time to load-time.
Jun 11 2018, 10:43 AM

Jun 7 2018

rrs committed rS334815: Take out the stack alias inadvertantly added by my commit..
Take out the stack alias inadvertantly added by my commit.
Jun 7 2018, 8:57 PM
rrs committed rS334813: Fix build issue with const and volatile and the.
Fix build issue with const and volatile and the
Jun 7 2018, 7:58 PM
rrs committed rS334804: This commit brings in a new refactored TCP stack called Rack..
This commit brings in a new refactored TCP stack called Rack.
Jun 7 2018, 6:18 PM
rrs closed D15525: Rack from Netflix.
Jun 7 2018, 6:18 PM
rrs added a comment to D15373: Patch to dummynet to allow simulation of compressed ack's.

A couple of configs I use:

Jun 7 2018, 2:41 PM

May 23 2018

rrs created D15525: Rack from Netflix.
May 23 2018, 12:12 AM

May 22 2018

rrs added a comment to D15510: Defer inpcb deletion until after a grace period has elapsed.

Looking closely at this and thinking about tcp_hpts.c, if I grok this correctly
this should all integrate ok. Assuming that someone calls inp_pcbfree() on
something that is in hpts, even if the epoch_call happens, the inpcb won't
be freed until the hpts's main loop see the INP_FREED flag and does
its in_pcbrele_wlocked() call at which time the INP will finally get destroyed.

May 22 2018, 11:41 AM

May 9 2018

rrs created D15373: Patch to dummynet to allow simulation of compressed ack's.
May 9 2018, 9:14 PM

Apr 26 2018

rrs committed rS333041: This change re-arranges the fields within the tcp-pcb so that.
This change re-arranges the fields within the tcp-pcb so that
Apr 26 2018, 9:41 PM
rrs closed D15136: Shuffle of tcpcb to optimize cache line efficiencies in main tcp_input/output paths..
Apr 26 2018, 9:41 PM

Apr 25 2018

rrs accepted D15164: Tigthen up kern_prefetch.h includes.

Yeah I had those in there in our version so I could
validate the range in amd64 with the DMAP_VM but for
some reason those don't work in head anymore.. Forgot
to purge the headers :)

Apr 25 2018, 4:52 PM

Apr 20 2018

rrs added a comment to D11105: Compile the default TCP stack as a module.

One of the nice things that having a module which is the default stack does is that
changes of any type can be made in the module. Then you can test those changes
before applying the changes to the main stack. That makes it rather nice that
one can try before we buy changes to the included stack. We have used that
fairly effectively at NF on deploying new versions of things (not the default stack but rack)

Apr 20 2018, 11:03 AM
rrs added a comment to D15136: Shuffle of tcpcb to optimize cache line efficiencies in main tcp_input/output paths..

Yes I gained about 1/2Gbps of added performance in my tests.
As to VIMAGE who really uses that? No one I know of. Considering
the use of it (or lack there of) I saw of no real reason to have it
in the first-cache-line. Of course the other question is how
often does one use the back-pointer to the parent vnet.

Apr 20 2018, 6:38 AM

Apr 19 2018

rrs created D15136: Shuffle of tcpcb to optimize cache line efficiencies in main tcp_input/output paths..
Apr 19 2018, 3:22 PM
rrs committed rS332774: These two modules need the tcp_hpts.h file for.
These two modules need the tcp_hpts.h file for
Apr 19 2018, 3:04 PM
rrs committed rS332770: This commit brings in the TCP high precision timer system (tcp_hpts)..
This commit brings in the TCP high precision timer system (tcp_hpts).
Apr 19 2018, 1:38 PM
rrs closed D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..
Apr 19 2018, 1:38 PM

Apr 18 2018

rrs accepted D15125: Update account and given names in committers-src.dot and calendar.freebsd.
Apr 18 2018, 11:33 AM

Apr 12 2018

rrs updated the diff for D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..

This adds the comments that Hiren had asked for and I even
add a comment block at the top of tcp_hpts.c to talk about usage
(not a design document but some hints on use). Note also Hiren
that the hpts system can be used by the default freebsd stack. Our
internal NF default stack actually has some of these hooks in it as
well so we can enable "pacing" with various options.

Apr 12 2018, 12:25 PM
rrs added a comment to D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..

Thanks for looking at this. Note that rack is not in yet because it lacks this commit. This is the
first commit in the steps to get rack that we use at NF for 99% of traffic into the FreeBSD core code.
These have to go in first :)

Apr 12 2018, 11:50 AM

Apr 11 2018

rrs updated the diff for D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..

After jtl and I chatted I finally understand his request (just a bit thick I guess) so
now I wrap up his final comment.

Apr 11 2018, 7:03 PM
rrs updated the diff for D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..

This address Gleb and Jonathans comments and also now passes a build universe

Apr 11 2018, 6:47 AM
rrs added inline comments to D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..
Apr 11 2018, 6:15 AM

Apr 10 2018

rrs added inline comments to D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..
Apr 10 2018, 8:28 PM
rrs added inline comments to D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..
Apr 10 2018, 8:26 PM

Apr 9 2018

rrs created D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..
Apr 9 2018, 5:11 PM

Apr 6 2018

rrs accepted D14990: Check that in_pcbfree() is only called once for each PCB..
Apr 6 2018, 4:36 PM

Aug 9 2017

rrs accepted D11929: Limit the rate at which we will send ACKs in response to out-of-window ACKs.
Aug 9 2017, 6:36 AM

Mar 17 2017

rrs accepted D10018: Summary:.

In general I love this change with my few nits. Note I have a major restructure coming
to inpcb and tcpcb that this helps pave the way for. Basically I have used vtune to
cache-line optimize tcp-output to get its cache line usage down.

Mar 17 2017, 10:20 AM

Oct 20 2016

rrs accepted D7904: Make ICMPv6 hard error handling for TCP consistent with the ICMPv4 handling.
Oct 20 2016, 1:22 PM