User Details
- User Since
- Nov 23 2015, 12:29 AM (469 w, 3 d)
Tue, Nov 19
update:
Looks this patch has some significant reduction on fragment (data_size % MSS) > 0 out of TSO data chunks: testD47474
Thu, Nov 14
Mon, Nov 4
I think you meant the title be:
tcp: consistently set CWND to MSS => tcp: consistently set CWND to 1
in case of SYN/SYN ACK retransmissions => in case of SYN retransmissions
Mon, Oct 28
OK. I am approving it now as my test in https://wiki.freebsd.org/chengcui/testD43470 shows some improvement. Any bug related observations can be fixed later.
Thu, Oct 24
Also, please correct the SUMMARY section:
Wed, Oct 23
Tue, Oct 22
Oct 21 2024
Oct 17 2024
update code based on discussion
From my test result in testD30155, I didn't find any significant improvement under my eyes:
Oct 16 2024
Better now. But it can be cleaner.
Add the __inline keyword to avoid overhead when possible.
Oct 15 2024
My current concern is that the definition and the usage of the super set macro TH_FLAGS or TCPF_ALL are inconsistent. For example, TH_ECE is in TH_FLAGS, but TH_ECN is in TCPF_ALL.
Oct 14 2024
I current concern is that new code for the TH_AE shall be in a separate patch, so that this patch can be a pure big non-functional change.
Oct 11 2024
Need code update.
Because of commit 440f4ba18e3a, please re-base.
Oct 10 2024
By the way based on my test, I didn't find this statement In addition, cwnd used to be 1 MSS right after RTO, increasing to 2 MSS more recently. to be true in your SUMMARY section. Also Address this by setting up snd_recover just in cc_cong_signal. needs to be revised.
With the provided packetdrill scripts before/after the fix, my test result is in my wiki: testD43355.
Oct 9 2024
I have no problem with this patch after testing it in Emulab. The test result is in my above comment.
If I recall these machines are Pentium 4 era and pretty CPU constrained. You can try the tunable 'hw.em.unsupported_tso=1' and then enable TSO on the interface to get some more bulk bandwidth, they are stable with TSO.
Are you able to detect any improvements or regressions otherwise? ping-pong time at low packet rate between two systems both set with enable_aim=0,1,2 would be interesting.
Oct 2 2024
Oct 1 2024
I think this change also applies to the bbr and rack stacks.
Looks good to me. Thanks for removing the goto label skip_alloc that improves reading.
Sep 27 2024
Does the summary section need to be updated? I didn't find the mentioned leaking part in code. Or am I missing something?
Sep 24 2024
Thanks for adding me as one of the reviewers. I will look at this patch and more likely test it in one of the machines in Emulab.
Sep 17 2024
re-base
re-base after commit b6c137de0af1
update function names based on Michael's suggestion
Sep 5 2024
split this patch into two parts: this patch and D46546
re-base
Sep 4 2024
Besides, I am wondering if TCPSTAT_INC(tcps_sndacks) and TCPSTAT_INC(tcps_sndtotal) consistency can also be improved after successful syncache_respond().
Sep 3 2024
Your summary section claims "In addition, cwnd used to be 1 MSS right after RTO, increasing to 2 MSS more recently." But I could not find the code change where cwnd is changed to 2MSS after RTO. Please elaborate if the summary needs to be revised or I am missing the point.
Aug 26 2024
Are you planning to remove the corresponding code in kernel space in a separate patch?
Aug 22 2024
Aug 15 2024
Aug 14 2024
Aug 11 2024
Aug 10 2024
Aug 8 2024
Aug 7 2024
Aug 6 2024
Jul 29 2024
Thought for a while if these new lines can be wrapped into a new function like try_cc_attach_from_listener(), but it looks to be unnecessary.
Jul 26 2024
This change seems to revert the commit 6134aabe38c8. Is there any behavior change on V_functions_inherit_listen_socket_stack == 0 after this change? Is the TCP function block from the listener changed dynamically once the default stack is changed?
ship after update
Looks good to me, after the comment update for struct cc_var.
Jul 25 2024
Jul 24 2024
Just saw https://reviews.freebsd.org/D46068. If this patch has not been committed, we can still further revise it, so that D46068 can be cleaner on function re-use.