Page MenuHomeFreeBSD

rrs (Randall Stewart)
User

Projects

User Details

User Since
Jan 22 2015, 5:22 AM (483 w, 50 m)

Recent Activity

Mon, Apr 22

rrs requested review of D44903: TCP can be subject to Sack Attacks lets fix this issue..
Mon, Apr 22, 2:19 PM

Thu, Apr 18

rrs accepted D44746: tcp: drop data received after a FIN has been processed.
Thu, Apr 18, 3:10 PM
rrs accepted D44648: tcp rack: improve BBR_LOG_CWND event.
Thu, Apr 18, 3:06 PM
rrs requested changes to D44746: tcp: drop data received after a FIN has been processed.

Why are you removing the data after close checks in BBR and Rack. This is not related to getting a FIN (where you may
still be open). The point of that is so that if we have closed after dumping data into the SB, and then the peer sends in
a request (not realizing we have closed yet) to NOT send a RST until after all the data is through. This was useful for
NF since often times Nginx will close() a connection after filling the N requests and finishing dumping data into the sb.
It say has 1Meg in the buffer when it does close().

Thu, Apr 18, 2:14 PM

Fri, Apr 5

rrs accepted D44610: tcp rack: fix sending .
Fri, Apr 5, 12:25 PM

Sun, Mar 31

rrs added inline comments to D43213: tcp: retry CWR transmission if TSO doesn't support ECN.
Sun, Mar 31, 12:07 PM
rrs added inline comments to D43297: tcp: remove superfluous checks for ECN session.
Sun, Mar 31, 12:05 PM
rrs added inline comments to D44222: ipsec_accel: handle TSO if supported.
Sun, Mar 31, 11:53 AM
rrs accepted D44527: TCP HPTS: improve consistency.
Sun, Mar 31, 11:50 AM

Thu, Mar 28

rrs committed rGb7b78c1c169d: Optimize HPTS so that little work is done until we have a hpts thread that is… (authored by rrs).
Optimize HPTS so that little work is done until we have a hpts thread that is…
Thu, Mar 28, 12:13 PM
rrs closed D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.
Thu, Mar 28, 12:13 PM

Wed, Mar 27

rrs updated the diff for D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Add Drew's read_frequently compiler directive.

Wed, Mar 27, 11:09 AM

Tue, Mar 26

rrs added inline comments to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.
Tue, Mar 26, 7:43 PM
rrs updated the diff for D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Update to Gleb and I's agreed upon reduction at the if in system.h

Tue, Mar 26, 12:27 PM
rrs added a comment to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

My bad, didn't understood proposed change. Of course if pointer stays stable since module load, there is no race.

Tue, Mar 26, 11:53 AM

Mar 25 2024

rrs added a comment to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.
In D44420#1014587, @rrs wrote:

Why not just use

if (hpts_that_need_softclock > 0)

tcp_hpts_softclock()\

?

But that would create the same race you mentioned above, wouldn't it? IMHO, using function pointer variable is the way to go and it potentially has a chance to get reduced to fewer instructions if compiler gets smarter.

Mar 25 2024, 10:51 PM

Mar 23 2024

rrs added a comment to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Another issue we will need to address is multiple hpts threads trying to set the tcp_hpts_softclock pointer. One can envision
a case where you have one that is just lowering it to zero, and so goes into the "set" to NULL block. And another thread that
is going from 0 -> 1 and so goes into the set to function block.

Mar 23 2024, 8:08 PM
rrs added a comment to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Why not just use

Mar 23 2024, 6:57 PM
rrs added a comment to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Why can't we just clear and set the function pointer itself? That would reduce impact on userret() down to just one instruction.

Mar 23 2024, 11:13 AM

Mar 21 2024

rrs updated the diff for D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

I do believe the extern is not needed here since systm.h is included.

Mar 21 2024, 2:24 PM
rrs updated the diff for D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Adopt Drew's optimization suggestion and reverted back the sysctl Michael pointed out since the arg is unused (and here I thought
all these years it was the default).

Mar 21 2024, 2:22 PM
rrs added inline comments to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.
Mar 21 2024, 2:10 PM

Mar 20 2024

rrs updated the diff for D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Adopt Michael's suggestion to re-use one of the available bits for the flag.

Mar 20 2024, 6:20 PM
rrs added inline comments to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.
Mar 20 2024, 6:17 PM

Mar 19 2024

rrs updated the diff for D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

Updated to use an atomic instead of the u64_counter as Gleb suggests.

Mar 19 2024, 3:56 PM
rrs added a comment to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

and yeah Drew we could add a block with sysctl

Mar 19 2024, 3:44 PM
rrs added a comment to D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.

I can easily change to an atomic.. I did not realize the fetch was expensive :)

Mar 19 2024, 3:43 PM
rrs requested review of D44420: Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold.
Mar 19 2024, 10:18 AM

Mar 15 2024

rrs closed D43986: Update to bring the rack stack with all its fixes in..
Mar 15 2024, 5:15 PM

Mar 12 2024

rrs committed rGe18b97bd63a8: Update to bring the rack stack with all its fixes in. (authored by rrs).
Update to bring the rack stack with all its fixes in.
Mar 12 2024, 11:57 AM

Mar 11 2024

rrs accepted D43986: Update to bring the rack stack with all its fixes in..
Mar 11 2024, 3:46 PM
rrs committed rGf6d489f402c3: Update to bring the rack stack with all its fixes in. (authored by rrs).
Update to bring the rack stack with all its fixes in.
Mar 11 2024, 11:39 AM

Mar 7 2024

rrs accepted D44250: Deep copy tls_enable struct in copyin_tls_enable.
Mar 7 2024, 3:45 PM · NetApp
rrs accepted D44259: e1000: Make masks for TCP flag handling during TSO sysctl'able.
Mar 7 2024, 3:20 PM
rrs accepted D44258: ixgbe: Make masks for TCP flag handling during TSO sysctl'able.
Mar 7 2024, 3:20 PM
rrs accepted D43727: TCP LRO: add dtrace probe points.
Mar 7 2024, 3:16 PM
rrs accepted D43769: TCP LRO: disable mbuf queuing when packet filter hooks are in place.
Mar 7 2024, 3:10 PM

Mar 1 2024

rrs committed rG638b5ae1c785: HTPS has actually three states not two so the macro needs to account for that. (authored by rrs).
HTPS has actually three states not two so the macro needs to account for that.
Mar 1 2024, 8:24 PM
rrs closed D44157: HTPS has actually three states not two so the macro needs to account for that..
Mar 1 2024, 8:23 PM
rrs updated the diff for D44157: HTPS has actually three states not two so the macro needs to account for that..

Add in the additional MPASS as Gleb suggested.

Mar 1 2024, 12:59 PM
rrs added a comment to D44157: HTPS has actually three states not two so the macro needs to account for that..

Good catch Gleb, I missed the hpts.c changes.. I will update it :=)

Mar 1 2024, 12:53 PM

Feb 29 2024

rrs added inline comments to D44157: HTPS has actually three states not two so the macro needs to account for that..
Feb 29 2024, 7:58 PM
rrs updated the summary of D44157: HTPS has actually three states not two so the macro needs to account for that..
Feb 29 2024, 7:56 PM
rrs added inline comments to D44157: HTPS has actually three states not two so the macro needs to account for that..
Feb 29 2024, 5:47 PM
rrs updated the diff for D43986: Update to bring the rack stack with all its fixes in..

So in testing I found a slight bug in that we were on the connect() side setting up the PCM max seg to
early. This means we end up with 10 x 512 not 10 x mss. Lets fix it so just like the listening side things get
deferred until we have gotten to the established state.

Feb 29 2024, 4:31 PM
rrs added a comment to D43986: Update to bring the rack stack with all its fixes in..

The hpts change is now in https://reviews.freebsd.org/D44157

Feb 29 2024, 4:07 PM
rrs requested review of D44157: HTPS has actually three states not two so the macro needs to account for that..
Feb 29 2024, 4:07 PM
rrs updated the diff for D43986: Update to bring the rack stack with all its fixes in..

This separates out the hpts fix. Will add that as a new review after I drop this in. I have
tested the combined hpts fix and this with the current head and everything works as
expected :)

Feb 29 2024, 4:05 PM
rrs added a comment to D43986: Update to bring the rack stack with all its fixes in..

I still need to re-test this after the last sync I did.. will do that and then split out the hpts change and update the diff before landing..

Feb 29 2024, 3:10 PM

Feb 28 2024

rrs accepted D43986: Update to bring the rack stack with all its fixes in..
Feb 28 2024, 6:56 PM

Feb 26 2024

rrs updated the diff for D43986: Update to bring the rack stack with all its fixes in..

Ok update to after the sync. Also I forgot to add in the inherit calls in the syncache and the tcp_usr_attach

Feb 26 2024, 2:25 PM

Feb 20 2024

rrs added a comment to D43986: Update to bring the rack stack with all its fixes in..
In D43986#1003519, @rrs wrote:

Did you try git add tcp_pcm.c? Please note that this week is stabilization week, meaning only bug fixes should go in...

No I did not, but once I do that will it show up in the diff?

I will give it a try and see.

Feb 20 2024, 5:50 PM
rrs added a comment to D43986: Update to bring the rack stack with all its fixes in..

Did you try git add tcp_pcm.c? Please note that this week is stabilization week, meaning only bug fixes should go in...

Feb 20 2024, 5:46 PM
rrs updated the diff for D43986: Update to bring the rack stack with all its fixes in..

Fix a bug I found in testing (and I think Gleb just pointed out)

Feb 20 2024, 5:44 PM
rrs requested review of D43986: Update to bring the rack stack with all its fixes in..
Feb 20 2024, 3:48 PM

Jan 24 2024

rrs accepted D43546: callout: retire callout_async_drain().

Glad to see this :)

Jan 24 2024, 5:08 PM

Dec 7 2023

rrs accepted D42946: tcp_hpts: let tcp_hpts_init() set a random CPU only once.
Dec 7 2023, 11:23 AM
rrs accepted D42917: tcp: stop stack timers in tcp_switch_back_to_default().
Dec 7 2023, 11:22 AM

Dec 4 2023

rrs accepted D42859: hpts: remove from opt_inet.h.
Dec 4 2023, 5:11 PM
rrs accepted D42858: hpts/lro: make tcp_lro_flush_tcphpts() and tcp_run_hpts() pointers.
Dec 4 2023, 5:11 PM
rrs accepted D42857: tcp/hpts: make stacks responsible for clearing themselves out HPTS.
Dec 4 2023, 5:10 PM
rrs accepted D42855: hpts: don't ifdef tcp_in_hpts().
Dec 4 2023, 5:08 PM
rrs accepted D42856: hpts: make stacks responsible for tcp_hpts_init().
Dec 4 2023, 5:08 PM
rrs accepted D42854: lro: separate HPTS specific code into tcp_lro_hpts.c.

One comment, Hans had a hand in restructuring the code a while ago too :)

Dec 4 2023, 5:07 PM
rrs accepted D42860: kern/subr_trap.c: repair the HPTS performance hack in userret().
Dec 4 2023, 5:04 PM

Nov 30 2023

rrs accepted D42851: tcp: move sysctl from tcp.do_lrd tp tcp.sack.lrd, remove sockopt for LRD.
Nov 30 2023, 3:47 PM

Nov 27 2023

rrs committed rG6a79e48076bc: Fix two latent bugs in hpts. One where a static is put on (authored by rrs).
Fix two latent bugs in hpts. One where a static is put on
Nov 27 2023, 7:40 PM

Nov 16 2023

rrs accepted D28822: Add PRR 6937bis heuristic and remove prr_conservative sysctl.
Nov 16 2023, 3:31 PM
rrs accepted D41672: tcp: add cubic_compute_pipe.
Nov 16 2023, 3:16 PM

Oct 5 2023

rrs accepted D42031: Improve sending UDP messages using IPv6 mapped addresses.
Oct 5 2023, 3:24 PM
rrs accepted D39299: tcp: include RFC6675 IsLost() in pipe calculation.
Oct 5 2023, 3:10 PM

Oct 4 2023

rrs committed rG8818f0f1124e: TCP: Fix a rack bug that skyzall found which results in a crash. (authored by rrs).
TCP: Fix a rack bug that skyzall found which results in a crash.
Oct 4 2023, 7:20 PM

Sep 7 2023

rrs accepted D41715: tcp: Align cubic cc with rfc9438.
Sep 7 2023, 3:35 PM

Jul 13 2023

rrs accepted D41010: Fix building of TCP CC modules depending on TCP_HHOOK.
Jul 13 2023, 3:19 PM

Jun 28 2023

rrs committed rG96eb0d90cd75: tcp: With the right options in the kernel cc_cubic stays in slowstart always. (authored by rrs).
tcp: With the right options in the kernel cc_cubic stays in slowstart always.
Jun 28 2023, 3:21 PM
rrs closed D40761: tcp: With the right options in the kernel cc_cubic stays in slowstart always..
Jun 28 2023, 3:20 PM

Jun 27 2023

rrs updated the diff for D40761: tcp: With the right options in the kernel cc_cubic stays in slowstart always..

After looking at this and thinking on it changing the structure is the *wrong* approach since it leaves a landmine in place
that can get someone if they don't include opt_inet.h. The better choice is to make all things that ifdef in the tcppcb to
be in opt_global.h so that the entire kernel always knows what tcpcb looks like.

Jun 27 2023, 11:13 AM

Jun 26 2023

rrs requested review of D40761: tcp: With the right options in the kernel cc_cubic stays in slowstart always..
Jun 26 2023, 9:56 PM

Jun 9 2023

rrs closed D40391: tcp: Rack fixes and misc updates.
Jun 9 2023, 2:27 PM
rrs committed rGe022f2b0131a: tcp: Rack fixes and misc updates (authored by rrs).
tcp: Rack fixes and misc updates
Jun 9 2023, 2:27 PM

Jun 2 2023

rrs requested review of D40391: tcp: Rack fixes and misc updates.
Jun 2 2023, 1:51 PM

May 24 2023

rrs closed D40229: tcp: request tracking is not http specific..
May 24 2023, 2:35 PM
rrs committed rG57a3a161a92f: tcp: request tracking is not http specific. (authored by rrs).
tcp: request tracking is not http specific.
May 24 2023, 1:30 PM

May 23 2023

rrs requested review of D40229: tcp: request tracking is not http specific..
May 23 2023, 1:58 PM

May 19 2023

rrs committed rG72ae93825244: Add a comment to the new tcp_get_srtt method to clarify that ticks (authored by rrs).
Add a comment to the new tcp_get_srtt method to clarify that ticks
May 19 2023, 7:55 PM
rrs committed rGec6d620b197e: There are congestion control algorithms will that pull in srtt, and this can… (authored by rrs).
There are congestion control algorithms will that pull in srtt, and this can…
May 19 2023, 3:18 PM
rrs closed D40146: There are congestion control algorithms will that pull in srtt, and this can cause issues with rack..
May 19 2023, 3:18 PM

May 18 2023

rrs requested review of D40146: There are congestion control algorithms will that pull in srtt, and this can cause issues with rack..
May 18 2023, 5:31 PM
rrs accepted D40061: Under RSS, assign a TCP flow's inp_flowid anyway..
May 18 2023, 3:10 PM

Apr 21 2023

rrs committed rG01216268f89e: tcp: hpts needs to still call output even after input. (authored by rrs).
tcp: hpts needs to still call output even after input.
Apr 21 2023, 11:13 AM
rrs closed D39738: tcp: hpts needs to still call output even after input..
Apr 21 2023, 11:12 AM

Apr 20 2023

rrs requested review of D39738: tcp: hpts needs to still call output even after input..
Apr 20 2023, 7:45 PM
rrs accepted D39736: netstat: fix printing of TCP pcbs with -A.
Apr 20 2023, 7:38 PM
rrs accepted D39688: netstat: cleanup.
Apr 20 2023, 3:07 PM
rrs accepted D39698: tcp: move HPTS/LRO flags out of inpcb to tcpcb.

Why if 0x10000 is not used would it matter?

Apr 20 2023, 1:06 PM
rrs accepted D39697: tcp_hpts: move HPTS related fields from inpcb to tcpcb.
Apr 20 2023, 1:03 PM
rrs accepted D39696: tcp: purge the input queue from tcp_discardcb().
Apr 20 2023, 1:02 PM

Apr 19 2023

rrs closed D39699: tcp: rack the request level logging is a bit too noisy when doing point logging..
Apr 19 2023, 6:02 PM
rrs committed rG4e8a20a7642a: tcp: rack the request level logging is a bit too noisy when doing point logging. (authored by rrs).
tcp: rack the request level logging is a bit too noisy when doing point logging.
Apr 19 2023, 6:02 PM
rrs requested review of D39699: tcp: rack the request level logging is a bit too noisy when doing point logging..
Apr 19 2023, 5:53 PM