Page MenuHomeFreeBSD

lstewart (Lawrence Stewart)
User

Projects

User Details

User Since
May 11 2014, 7:08 PM (550 w, 6 d)

Recent Activity

Apr 3 2024

lstewart committed rG7eb92c502eb5: Reinstate returning EOVERFLOW from stats_v1_blob_clone() (authored by lstewart).
Reinstate returning EOVERFLOW from stats_v1_blob_clone()
Apr 3 2024, 2:01 AM
lstewart closed D44585: Reinstate returning EOVERFLOW from stats_v1_blob_clone().
Apr 3 2024, 2:01 AM

Apr 2 2024

lstewart committed rG743d4b7cc5e2: Fix the logic which determines if the destination Q variable can represent the… (authored by lstewart).
Fix the logic which determines if the destination Q variable can represent the…
Apr 2 2024, 7:24 AM
lstewart added a reviewer for D44585: Reinstate returning EOVERFLOW from stats_v1_blob_clone(): markj.
Apr 2 2024, 7:01 AM
lstewart requested review of D44585: Reinstate returning EOVERFLOW from stats_v1_blob_clone().
Apr 2 2024, 7:00 AM

Mar 2 2024

lstewart added a comment to D43179: stats: Check for errors from copyout().

Hi Mark,

Mar 2 2024, 11:30 PM

Mar 2 2022

lstewart added inline comments to D30036: Update Rack and BBR to the latest from NF fixing LRO issues along the way..
Mar 2 2022, 9:21 AM

Dec 1 2021

lstewart added a comment to D33035: tcp: Add hystart++ to our cubic implementation..

I won't have the time to review this in the near future but would note that many of the things I flagged for the original newreno hystart++ implementation also apply to this implementation. However, I wouldn't call any of them blockers so don't have an objection to you committing this at your discretion.

Dec 1 2021, 9:20 AM

Nov 24 2021

lstewart accepted D33098: tcp: don't upgrade a lock just for logging.
Nov 24 2021, 12:01 PM
lstewart added inline comments to D33098: tcp: don't upgrade a lock just for logging.
Nov 24 2021, 9:00 AM

Nov 16 2021

lstewart added a comment to D32983: tcp: Fix a locking issue.

The whole point of this was that there were absolutely no logs what so ever when tcp_respond() was used. So prior to this set of commits you *never* saw anything when we responded to a packet (and that happens in many places in all stacks). Now I would have to study when we use tcp_respond() with a INP_RLOCK() this is a very narrow case I would imagine, but if you are not willing to get a INP_WLOCK() that implies to me you are not changing the TCB... but thats what logging does.

Nov 16 2021, 4:48 AM

Nov 15 2021

lstewart added inline comments to D32983: tcp: Fix a locking issue.
Nov 15 2021, 5:42 AM
lstewart added inline comments to D32983: tcp: Fix a locking issue.
Nov 15 2021, 12:14 AM

Nov 4 2021

lstewart accepted D32698: SIFTR: Fix compilation with -DSIFTR_IPV6.

Thanks for fixing!

Nov 4 2021, 12:13 AM

Nov 3 2021

lstewart added a comment to D32693: tcp: Congestion control cleanup..

First pass feedback

Nov 3 2021, 11:54 PM

Oct 22 2021

lstewart added a comment to D32373: tcp: Add hystart-plus to cc_newreno and rack..

I haven't finished reviewing yet but some initial thoughts in addition to my inline comments:

  • Nit: please submit diffs with full context as it makes reviewing easier
  • You need to address how enabling Hystart++ when using cc_newreno with the default FreeBSD stack will work
  • The implementation pessimises the common case where newreno will be used without ABE or Hystart++ which is probably undesirable. The module's lack of a cb_init() hook implementation was very deliberate to avoid such pessimisation and also as noted inline, assumptions are made elsewhere that cc_newreno can always be used as an algo of last resort so we cannot allow init to ever fail.
Oct 22 2021, 12:13 PM

Apr 5 2021

lstewart requested review of D29585: Fix the "frlossreduce" feature of newreno's Alternative Backoff with ECN (ABE) implementation.
Apr 5 2021, 4:46 AM

Apr 2 2021

lstewart committed rG9141b58b50a8: stats(3): Improve t-digest merging of samples which result in mu adjustment… (authored by lstewart).
stats(3): Improve t-digest merging of samples which result in mu adjustment…
Apr 2 2021, 2:48 AM
lstewart committed rG1eb402e47af3: stats(3): Improve t-digest merging of samples which result in mu adjustment… (authored by lstewart).
stats(3): Improve t-digest merging of samples which result in mu adjustment…
Apr 2 2021, 2:18 AM

Mar 25 2021

lstewart committed rG2a878f01f22f: random(9): Restore historical [0,2^31-1] output range and related man… (authored by lstewart).
random(9): Restore historical [0,2^31-1] output range and related man…
Mar 25 2021, 7:05 AM
lstewart committed rG828e6b5f5e30: random(9): Restore historical [0,2^31-1] output range and related man… (authored by lstewart).
random(9): Restore historical [0,2^31-1] output range and related man…
Mar 25 2021, 7:00 AM

Mar 24 2021

lstewart closed D29385: Make random() behaves as documented: "result is uniform in [0, 2^31 - 1]".
Mar 24 2021, 5:18 AM
lstewart committed rGdbbf3e3f37d6: random(9): Restore historical [0,2^31-1] output range and related man (authored by lstewart).
random(9): Restore historical [0,2^31-1] output range and related man
Mar 24 2021, 5:18 AM

Mar 23 2021

lstewart accepted D29385: Make random() behaves as documented: "result is uniform in [0, 2^31 - 1]".

Loic doesn't have a commit bit, so I've offered to commit on his behalf.

Mar 23 2021, 5:30 AM

Dec 13 2020

lstewart committed R9:58d7bd1515b4: Document the __FreeBSD_version bump to 800061 in relation to the (authored by lstewart).
Document the __FreeBSD_version bump to 800061 in relation to the
Dec 13 2020, 6:07 PM
lstewart committed R9:3079451f59fd: Add myself as requested by the committers-guide (authored by lstewart).
Add myself as requested by the committers-guide
Dec 13 2020, 5:45 PM
lstewart committed R9:69079175b7cd: Add myself as requested by the committers-guide (authored by lstewart).
Add myself as requested by the committers-guide
Dec 13 2020, 5:45 PM

Nov 24 2020

lstewart added a comment to D26807: move cwnd and ssthresh updates into individual congestion control module.

incrementing by t_maxseg (w/o TSopt) vs. tcp_maxseg() (w/ TSopt/MPTCP) does not lead to a unexpected transmission of 2 segments, when only a single segment would be expected (tcp_output prefers to send full segments but considers option overhead).

Incrementing by tcp_maxseg() is sightly less aggressive during CA, not?

First up, it seems buggy to me that the sender side accounts for received SACK blocks in the "effective" MSS computed by tcp_maxseg() for outbound segments. (Not your bug, but your change amplifies the effect of the bug).

Not quite sure I get your point here; are you saying the tcp_maxseg() is erraneously including received SACK blocks fom the previous ACK? Maybe you can send an annotated code snippet per direct mail?

Nov 24 2020, 5:24 AM

Nov 23 2020

lstewart added inline comments to D27148: Improve RFC 7323 Compliance.
Nov 23 2020, 11:56 AM
lstewart added inline comments to D27148: Improve RFC 7323 Compliance.
Nov 23 2020, 11:53 AM
lstewart added a comment to D26807: move cwnd and ssthresh updates into individual congestion control module.

Apologies for the delayed reaction...

Nov 23 2020, 8:53 AM
lstewart committed rP556089: benchmarks/spp: Update v0.4 -> v0.4.2.
benchmarks/spp: Update v0.4 -> v0.4.2
Nov 23 2020, 6:35 AM
lstewart added a comment to D27148: Improve RFC 7323 Compliance.

Sorry for the tardy comments, but a few things in this changeset caught my eye during our internal Netflix upstream merge review.

Nov 23 2020, 5:20 AM

Nov 4 2020

lstewart added inline comments to D26807: move cwnd and ssthresh updates into individual congestion control module.
Nov 4 2020, 6:23 AM

Nov 18 2019

lstewart added inline comments to D20655: Make use of stats(3) in the TCP stack.
Nov 18 2019, 11:20 PM
lstewart added inline comments to D20655: Make use of stats(3) in the TCP stack.
Nov 18 2019, 3:31 AM

Nov 5 2019

lstewart accepted D22188: libstats: Fix ABI assertion..

Thanks for the fix @brooks

Nov 5 2019, 2:04 AM

Oct 14 2019

lstewart committed rS353486: Fix some "RB_" -> "ARB_" copy and paste nits for text sourced from tree(3)..
Fix some "RB_" -> "ARB_" copy and paste nits for text sourced from tree(3).
Oct 14 2019, 5:26 AM

Oct 8 2019

lstewart added a comment to D20477: Introduce stats(3).
In D20477#477820, @cem wrote:

I'm still confused why some of the structures are defined in endian-specific ways — it would be good if the author could answer that since guesses are just guesses.

Oct 8 2019, 6:16 AM

Oct 2 2019

lstewart added inline comments to D20477: Introduce stats(3).
Oct 2 2019, 3:27 AM

Sep 24 2019

lstewart added inline comments to D20477: Introduce stats(3).
Sep 24 2019, 2:47 AM

Aug 12 2019

lstewart added inline comments to D20655: Make use of stats(3) in the TCP stack.
Aug 12 2019, 7:54 AM
lstewart added inline comments to D20655: Make use of stats(3) in the TCP stack.
Aug 12 2019, 2:35 AM

Jul 11 2019

lstewart added inline comments to D20477: Introduce stats(3).
Jul 11 2019, 4:19 AM
lstewart added inline comments to D20116: Introduce <sys/qmath.h>.
Jul 11 2019, 4:08 AM

Mar 28 2019

lstewart accepted D17614: RFC6582 - prevent cwnd to collapse down to 1 mss after exiting recovery.
Mar 28 2019, 1:58 PM · transport

Feb 25 2019

lstewart committed rP493891: Assume maintainership of benchmarks/spp and update to v0.4 which addresses:.
Assume maintainership of benchmarks/spp and update to v0.4 which addresses:
Feb 25 2019, 7:33 PM
lstewart closed D18336: Update benchmarks/spp to v0.4.
Feb 25 2019, 7:33 PM

Feb 7 2019

lstewart accepted D19071: Get TCP CDG CC working if net.inet.tcp.cc.cdg.smoothing_factor = 0 .

Agreed and apologies, I misread/miunderstood the code. I also touched base with one of the original CDG authors to sanity check and they agree this change is a good idea.

Feb 7 2019, 9:08 PM

Feb 5 2019

lstewart requested changes to D19071: Get TCP CDG CC working if net.inet.tcp.cc.cdg.smoothing_factor = 0 .

Suggest moving stailq flush loops out of cdg_cb_destroy() into an inline function, changing smoothing_factor sysctl to a SYSCTL_PROC with custom handler similar to the exp_backoff_scale sysctl, and calling flush function from both cdg_cb_destroy() and sysctl handler when smoothing_factor is set to zero

Feb 5 2019, 12:53 PM
lstewart added a comment to D19071: Get TCP CDG CC working if net.inet.tcp.cc.cdg.smoothing_factor = 0 .

Actually, we probably need to flush the qdiffmin_q and qdiffmax_q lists in the sample_q_size == 0 branch so that a change back to non-zero smoothing_factor doesn't start operating with stale data.

Feb 5 2019, 12:39 PM
lstewart accepted D19071: Get TCP CDG CC working if net.inet.tcp.cc.cdg.smoothing_factor = 0 .

Thank you for fixing this.

Feb 5 2019, 12:36 PM

Dec 3 2018

lstewart added a comment to D18336: Update benchmarks/spp to v0.4.

Thanks all for the feedback... I'm a bit rusty on working with ports. Will commit sometime this week with my src commit bit hat on and "review/approved by:" if no further feedback materialises.

Dec 3 2018, 5:45 PM

Nov 26 2018

lstewart updated the diff for D18336: Update benchmarks/spp to v0.4.

Checked with one of the authors. Preference is to reference the Bitbucket URL in pkg-descr if it can only list a single URL.

Nov 26 2018, 9:29 AM
lstewart updated the diff for D18336: Update benchmarks/spp to v0.4.

Full context diff, shuffle variable order and ditch DISTVERSION in favour of a custom variable to hold the commit hash used in the tarball directory name.

Nov 26 2018, 8:41 AM
lstewart created D18336: Update benchmarks/spp to v0.4.
Nov 26 2018, 7:53 AM

Oct 31 2018

lstewart added a comment to D17595: Fix handling of RST segments in SYN-RCVD state via the syn cache code path.

@tuexen Any thoughts on the TFO case?

Oct 31 2018, 2:52 AM

Oct 18 2018

lstewart added inline comments to D17595: Fix handling of RST segments in SYN-RCVD state via the syn cache code path.
Oct 18 2018, 8:45 PM

Jul 21 2018

lstewart accepted D16282: NULL out cc_data in pluggable TCP {cc}_cb_destroy.

I would prefer to leave the check in cc_cdg until we run to ground why the callback was getting hit twice (in the case someone has cc_cdg as default).

Jul 21 2018, 3:40 AM
lstewart added a comment to D16282: NULL out cc_data in pluggable TCP {cc}_cb_destroy.

@lstewart we debated who should NULL before submitting this, I think it can be moved out of the destructors to the places I put the KASSERTs but I'll have to double check everything. One issue I foresaw NULLing in the framework is that we have to trust that the cc_cb_destroy destructor did indeed free() and can't catch mistakes with a KASSERT. But writing a new CC isn't exactly common and will probably be cribbed from an existing one so maybe I was over thinking that angle.

Jul 21 2018, 2:52 AM

Jul 20 2018

lstewart added a comment to D16282: NULL out cc_data in pluggable TCP {cc}_cb_destroy.

If the cb_destroy virtual function shouldn't null the pointer, I assert that it shouldn't free it either.

There should be another cc_assert wrapper function that checks for not null, frees then nulls, after calling the virtual function.

Jul 20 2018, 3:48 AM
lstewart added inline comments to D16282: NULL out cc_data in pluggable TCP {cc}_cb_destroy.
Jul 20 2018, 3:29 AM
lstewart added a comment to D16282: NULL out cc_data in pluggable TCP {cc}_cb_destroy.

When ABE was added (rS331214) to New Reno and leak fixed (rS333699) , some assumptions about the state of it as the default and always ready cc seem to have changed, notably it now has a constructor and destructor (newreno_cb_destroy) for per connection state.

Jul 20 2018, 3:14 AM

Jun 8 2018

lstewart added a member for transport: lstewart.
Jun 8 2018, 6:28 PM

May 17 2018

lstewart committed rS333699: Plug a memory leak and potential NULL-pointer dereference introduced in r331214..
Plug a memory leak and potential NULL-pointer dereference introduced in r331214.
May 17 2018, 2:46 AM
lstewart closed D15358: Address memory leak in new reno cc module.
May 17 2018, 2:46 AM

May 15 2018

lstewart added inline comments to D15358: Address memory leak in new reno cc module.
May 15 2018, 1:45 AM

May 14 2018

lstewart updated the diff for D15358: Address memory leak in new reno cc module.

Final commit candidate, rebased against FreeBSD head r333598, and with M_ZERO removed from malloc call.

May 14 2018, 2:24 AM

May 10 2018

lstewart updated the diff for D15358: Address memory leak in new reno cc module.
May 10 2018, 10:55 AM
lstewart commandeered D15358: Address memory leak in new reno cc module.

newreno_plugleak_v3.diff with getsockopt(2)/setsockopt(2) updated.

May 10 2018, 10:34 AM
lstewart added a comment to D15358: Address memory leak in new reno cc module.

@wollman Many thanks for the historical and standards related context - greatly appreciated. I realised that I probably need to update getsockopt(2)/setsockopt(2) as well...

May 10 2018, 10:00 AM
lstewart updated subscribers of D15358: Address memory leak in new reno cc module.
In D15358#323834, @thj wrote:

Still to be tested, but I think something like this would address the leak and change memory allocation to being conditional on need: newreno_plugleak_v1.diff

This reads okay.

I ran through a loop with netcat and didn't doesn't leak(of course it wouldn't!) and tested setting the abe beta values via set sockopt with a modified netcat (https://people.freebsd.org/~thj/diffs/ncabe.diff). This also doesn't leak.

May 10 2018, 1:41 AM

May 9 2018

lstewart added a comment to D15358: Address memory leak in new reno cc module.

Still to be tested, but I think something like this would address the leak and change memory allocation to being conditional on need: newreno_plugleak_v1.diff

May 9 2018, 3:43 AM

Mar 19 2018

lstewart closed D11616: Add support for TCP ABE draft-khademi-tcpm-alternativebackoff-ecn.
Mar 19 2018, 4:37 PM
lstewart committed rS331214: Add support for the experimental Internet-Draft "TCP Alternative Backoff with.
Add support for the experimental Internet-Draft "TCP Alternative Backoff with
Mar 19 2018, 4:37 PM

Feb 7 2018

lstewart added a comment to D14141: fix underflow for cubic_cwnd().

@jason_eggnet.com I thought about this some more and while there is no doubt that overflow/underflow due to the function's inputs is possible and needs to be remedied, the cause of overflow in your test case is not in fact the time since congestion being too large, but the bogus value of K, which for a wmax of 1460 bytes (i.e. slightly more than 1 MSS) should be 205 per my quick check:

Feb 7 2018, 3:14 AM
lstewart added a comment to D14141: fix underflow for cubic_cwnd().

Oh and @jason_eggnet.com , regarding your test code, I structured things the way they are so that you can simply #include <netinet/cc/cc_cubic.h> into your userspace test.c to get access to the various window calculation inlines rather than copy/pasting them.

Feb 7 2018, 2:21 AM
lstewart added inline comments to D14141: fix underflow for cubic_cwnd().
Feb 7 2018, 2:13 AM
lstewart added a comment to D14141: fix underflow for cubic_cwnd().

This fix doesn't make sense to me. If it has been a long time since the last congestion epoch resulting in an overflow in the calculated congestion window, collapsing the window from <something_large> to 1 segment is a terrible idea. There's also no sound reason that cwnd shouldn't be allowed to shrink below 1 segment, and if that causes problems elsewhere, those places should be fixed.

Feb 7 2018, 2:10 AM

Aug 24 2017

lstewart committed rS322831: Only emit the trailing new line added in r322613 when not operating in quiet.
Only emit the trailing new line added in r322613 when not operating in quiet
Aug 24 2017, 8:20 AM

Aug 18 2017

lstewart committed rS322643: An off-by-one error exists in sbuf_vprintf()'s use of SBUF_HASROOM() when an.
An off-by-one error exists in sbuf_vprintf()'s use of SBUF_HASROOM() when an
Aug 18 2017, 2:06 AM
lstewart closed D8535: Fix an off-by-one error in libsbuf's userland sbuf_vprintf() function. by committing rS322643: An off-by-one error exists in sbuf_vprintf()'s use of SBUF_HASROOM() when an.
Aug 18 2017, 2:06 AM
lstewart updated the diff for D8535: Fix an off-by-one error in libsbuf's userland sbuf_vprintf() function..

yoda be gone

Aug 18 2017, 12:31 AM

Aug 17 2017

lstewart added a comment to D8535: Fix an off-by-one error in libsbuf's userland sbuf_vprintf() function..

@cem Thanks!

Aug 17 2017, 10:53 PM
lstewart updated the diff for D8535: Fix an off-by-one error in libsbuf's userland sbuf_vprintf() function..

Update diff post r322614 commit.

Aug 17 2017, 8:06 AM
lstewart added a reviewer for D8535: Fix an off-by-one error in libsbuf's userland sbuf_vprintf() function.: cem.

Conrad: would you be willing to sanity check this sbuf change for me as well?

Aug 17 2017, 7:32 AM
lstewart committed rS322614: Implement simple record boundary tracking in sbuf(9) to avoid record splitting.
Implement simple record boundary tracking in sbuf(9) to avoid record splitting
Aug 17 2017, 7:20 AM
lstewart closed D8536: Implement simple record boundary tracking in sbuf(9) by committing rS322614: Implement simple record boundary tracking in sbuf(9) to avoid record splitting.
Aug 17 2017, 7:20 AM
lstewart committed rS322613: The r322210 change to pgrep's PID delimiting behaviour causes pgrep's default.
The r322210 change to pgrep's PID delimiting behaviour causes pgrep's default
Aug 17 2017, 6:36 AM
lstewart added a comment to D8536: Implement simple record boundary tracking in sbuf(9).
In D8536#249937, @cem wrote:

Looks fine. I think it would be good to note in the commit message that this is only for top-level sections and does not nest. It's obvious when you think about it, but, I like clarity.

Aug 17 2017, 1:10 AM

Aug 15 2017

lstewart added a reviewer for D8536: Implement simple record boundary tracking in sbuf(9): cem.
Aug 15 2017, 5:15 AM

Aug 8 2017

lstewart updated the diff for D8536: Implement simple record boundary tracking in sbuf(9).

Rebase patch against current head and address review feedback.

Aug 8 2017, 12:59 AM
lstewart updated the diff for D8535: Fix an off-by-one error in libsbuf's userland sbuf_vprintf() function..

The off-by-one error was incorrectly attributed to the condition that checks if vsnprintf() was successful at rendering all of the specified content into the sbuf.

Aug 8 2017, 12:45 AM
lstewart committed rS322210: pgrep naively appends the delimiter to all PIDs including the last.
pgrep naively appends the delimiter to all PIDs including the last
Aug 8 2017, 12:31 AM
lstewart closed D8537: Suppress emission of delimiter after final PID when using pgrep's -d switch by committing rS322210: pgrep naively appends the delimiter to all PIDs including the last.
Aug 8 2017, 12:31 AM
lstewart updated the summary of D8535: Fix an off-by-one error in libsbuf's userland sbuf_vprintf() function..
Aug 8 2017, 12:21 AM

Aug 2 2017

lstewart accepted D11616: Add support for TCP ABE draft-khademi-tcpm-alternativebackoff-ecn.

Thanks Tom, looking good. Will wait a few days to see if any further feedback materialises.

Aug 2 2017, 2:13 PM

Jul 28 2017

lstewart added inline comments to D11616: Add support for TCP ABE draft-khademi-tcpm-alternativebackoff-ecn.
Jul 28 2017, 1:48 AM

Jul 27 2017

lstewart added a comment to D11616: Add support for TCP ABE draft-khademi-tcpm-alternativebackoff-ecn.

This looks good barring a couple of nits as noted. Please update tcp(4) and cc_newreno(4) appropriately.

Jul 27 2017, 2:56 AM

Jul 17 2017

lstewart added a comment to D11616: Add support for TCP ABE draft-khademi-tcpm-alternativebackoff-ecn.

I'm pretty sure this wouldn't compile as proposed. Please remember to build test patches against FreeBSD's svn head branch, as all work always gets comitted to head first before potentially being backported later.

Jul 17 2017, 2:22 PM