net/mptcp/pm.c | 9 +- net/mptcp/pm_netlink.c | 3 - net/mptcp/protocol.c | 285 ++++++++++++++++++++++------------------- net/mptcp/protocol.h | 5 +- net/mptcp/sched.c | 61 +++++---- 5 files changed, 184 insertions(+), 179 deletions(-)
v5: - address Mat's comments in v4. v4: - update __mptcp_subflow_push_pending as Mat suggested. - add more patches from "BPF redundant scheduler" series. v3: - add a cleanup patch. - remove msk->last_snd in mptcp_subflow_get_send(). - add the loop that calls the scheduler again in __mptcp_push_pending(). v2: - add snd_burst check in dfrags loop as Mat suggested. Refactor __mptcp_push_pending() and __mptcp_subflow_push_pending() to remove duplicate code and support redundant scheduler more easily in __mptcp_subflow_push_pending(). Geliang Tang (11): Squash to "mptcp: add get_subflow wrappers" mptcp: 'first' argument for subflow_push_pending mptcp: refactor push_pending logic mptcp: drop last_snd for burst scheduler mptcp: simplify push_pending mptcp: multi subflows push_pending mptcp: use msk instead of mptcp_sk mptcp: refactor subflow_push_pending logic mptcp: simplify subflow_push_pending mptcp: multi subflows subflow_push_pending mptcp: multi subflows retrans support net/mptcp/pm.c | 9 +- net/mptcp/pm_netlink.c | 3 - net/mptcp/protocol.c | 285 ++++++++++++++++++++++------------------- net/mptcp/protocol.h | 5 +- net/mptcp/sched.c | 61 +++++---- 5 files changed, 184 insertions(+), 179 deletions(-) -- 2.35.3
On Thu, 6 Oct 2022, Geliang Tang wrote: > v5: > - address Mat's comments in v4. > Hi Geliang - I do think these changes are getting closer to being good to merge, there's a remaining bisectability issue that I mention in patch 3 and the feedback on the squash-to patches to address. - Mat > v4: > - update __mptcp_subflow_push_pending as Mat suggested. > - add more patches from "BPF redundant scheduler" series. > > v3: > - add a cleanup patch. > - remove msk->last_snd in mptcp_subflow_get_send(). > - add the loop that calls the scheduler again in __mptcp_push_pending(). > > v2: > - add snd_burst check in dfrags loop as Mat suggested. > > Refactor __mptcp_push_pending() and __mptcp_subflow_push_pending() to > remove duplicate code and support redundant scheduler more easily in > __mptcp_subflow_push_pending(). > > Geliang Tang (11): > Squash to "mptcp: add get_subflow wrappers" > mptcp: 'first' argument for subflow_push_pending > mptcp: refactor push_pending logic > mptcp: drop last_snd for burst scheduler > mptcp: simplify push_pending > mptcp: multi subflows push_pending > mptcp: use msk instead of mptcp_sk > mptcp: refactor subflow_push_pending logic > mptcp: simplify subflow_push_pending > mptcp: multi subflows subflow_push_pending > mptcp: multi subflows retrans support > > net/mptcp/pm.c | 9 +- > net/mptcp/pm_netlink.c | 3 - > net/mptcp/protocol.c | 285 ++++++++++++++++++++++------------------- > net/mptcp/protocol.h | 5 +- > net/mptcp/sched.c | 61 +++++---- > 5 files changed, 184 insertions(+), 179 deletions(-) > > -- > 2.35.3 > > > -- Mat Martineau Intel
On Thu, 6 Oct 2022, Geliang Tang wrote: > v5: > - address Mat's comments in v4. Hi Geliang - Thanks for the v5. I haven't finished looking over all the patches in detail yet, but two things I do want to reply to right now: * Thanks for explaining in patch 4 that last_snd is still useful for round robin. I had forgotten about that, and it looked like a "write-only" variable in the kernel code. * In the meeting today Paolo suggested that a good test for the new scheduler loop would be to modify simult_flows.sh to use much larger files, then see if the modified code slowed down any of the simult_flows tests. He suggested making the test file 10x larger in simult_flows.sh: - size=$((2 * 2048 * 4096)) + size=$((2 * 2048 * 4096 * 10)) Can you compare the test times between the export branch and this series, with both of them using the larger file size? Thanks, Mat > > v4: > - update __mptcp_subflow_push_pending as Mat suggested. > - add more patches from "BPF redundant scheduler" series. > > v3: > - add a cleanup patch. > - remove msk->last_snd in mptcp_subflow_get_send(). > - add the loop that calls the scheduler again in __mptcp_push_pending(). > > v2: > - add snd_burst check in dfrags loop as Mat suggested. > > Refactor __mptcp_push_pending() and __mptcp_subflow_push_pending() to > remove duplicate code and support redundant scheduler more easily in > __mptcp_subflow_push_pending(). > > Geliang Tang (11): > Squash to "mptcp: add get_subflow wrappers" > mptcp: 'first' argument for subflow_push_pending > mptcp: refactor push_pending logic > mptcp: drop last_snd for burst scheduler > mptcp: simplify push_pending > mptcp: multi subflows push_pending > mptcp: use msk instead of mptcp_sk > mptcp: refactor subflow_push_pending logic > mptcp: simplify subflow_push_pending > mptcp: multi subflows subflow_push_pending > mptcp: multi subflows retrans support > > net/mptcp/pm.c | 9 +- > net/mptcp/pm_netlink.c | 3 - > net/mptcp/protocol.c | 285 ++++++++++++++++++++++------------------- > net/mptcp/protocol.h | 5 +- > net/mptcp/sched.c | 61 +++++---- > 5 files changed, 184 insertions(+), 179 deletions(-) > > -- > 2.35.3 > > > -- Mat Martineau Intel
On Thu, Oct 06, 2022 at 05:16:55PM -0700, Mat Martineau wrote: > On Thu, 6 Oct 2022, Geliang Tang wrote: > > > v5: > > - address Mat's comments in v4. > > Hi Geliang - > > Thanks for the v5. I haven't finished looking over all the patches in detail > yet, but two things I do want to reply to right now: > > * Thanks for explaining in patch 4 that last_snd is still useful for round > robin. I had forgotten about that, and it looked like a "write-only" > variable in the kernel code. > > * In the meeting today Paolo suggested that a good test for the new > scheduler loop would be to modify simult_flows.sh to use much larger files, > then see if the modified code slowed down any of the simult_flows tests. > > He suggested making the test file 10x larger in simult_flows.sh: > > - size=$((2 * 2048 * 4096)) > + size=$((2 * 2048 * 4096 * 10)) > > Can you compare the test times between the export branch and this series, > with both of them using the larger file size? 10x larger failed in my tests with timeout. So I changed it to 5x larger. Here's the patch: @@ -52,7 +52,7 @@ setup() sout=$(mktemp) cout=$(mktemp) capout=$(mktemp) - size=$((2 * 2048 * 4096)) + size=$((2 * 2048 * 4096 * 5)) dd if=/dev/zero of=$small bs=4096 count=20 >/dev/null 2>&1 dd if=/dev/zero of=$large bs=4096 count=$((size / 4096)) >/dev/null 2>&1 @@ -210,13 +210,13 @@ do_transfer() fi echo " [ fail ]" - echo "client exit code $retc, server $rets" 1>&2 - echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 - ip netns exec ${ns3} ss -nita 1>&2 -o "sport = :$port" - echo -e "\nnetns ${ns1} socket stat for $port:" 1>&2 - ip netns exec ${ns1} ss -nita 1>&2 -o "dport = :$port" - ls -l $sin $cout - ls -l $cin $sout + #echo "client exit code $retc, server $rets" 1>&2 + #echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 + #ip netns exec ${ns3} ss -nita 1>&2 -o "sport = :$port" + #echo -e "\nnetns ${ns1} socket stat for $port:" 1>&2 + #ip netns exec ${ns1} ss -nita 1>&2 -o "dport = :$port" + #ls -l $sin $cout + #ls -l $cin $sout cat "$capout" return 1 All logs are attached. "5x_10times_export.log" is for the export branch and "5x_10times_refactor_v5.log" is for this series. Thanks, -Geliang > > > Thanks, > > Mat > > > > > > v4: > > - update __mptcp_subflow_push_pending as Mat suggested. > > - add more patches from "BPF redundant scheduler" series. > > > > v3: > > - add a cleanup patch. > > - remove msk->last_snd in mptcp_subflow_get_send(). > > - add the loop that calls the scheduler again in __mptcp_push_pending(). > > > > v2: > > - add snd_burst check in dfrags loop as Mat suggested. > > > > Refactor __mptcp_push_pending() and __mptcp_subflow_push_pending() to > > remove duplicate code and support redundant scheduler more easily in > > __mptcp_subflow_push_pending(). > > > > Geliang Tang (11): > > Squash to "mptcp: add get_subflow wrappers" > > mptcp: 'first' argument for subflow_push_pending > > mptcp: refactor push_pending logic > > mptcp: drop last_snd for burst scheduler > > mptcp: simplify push_pending > > mptcp: multi subflows push_pending > > mptcp: use msk instead of mptcp_sk > > mptcp: refactor subflow_push_pending logic > > mptcp: simplify subflow_push_pending > > mptcp: multi subflows subflow_push_pending > > mptcp: multi subflows retrans support > > > > net/mptcp/pm.c | 9 +- > > net/mptcp/pm_netlink.c | 3 - > > net/mptcp/protocol.c | 285 ++++++++++++++++++++++------------------- > > net/mptcp/protocol.h | 5 +- > > net/mptcp/sched.c | 61 +++++---- > > 5 files changed, 184 insertions(+), 179 deletions(-) > > > > -- > > 2.35.3 > > > > > > > > -- > Mat Martineau > Intel 1 balanced bwidth transfer slower than expected! runtime 36150 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36135 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36087 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36103 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18173 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18284 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18160 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction 18169 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18349 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse direction18170 max 18227 [ OK ] 2 balanced bwidth transfer slower than expected! runtime 36085 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36095 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36104 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36106 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18364 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18272 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18246 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction 18150 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay 18216 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay - reverse direction18199 max 18227 [ OK ] 3 balanced bwidth transfer slower than expected! runtime 36114 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36082 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36125 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36093 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18198 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18431 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18312 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction 18197 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18284 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18450 ms, expected 18227 ms max 18227 [ fail ] 4 balanced bwidth transfer slower than expected! runtime 36111 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36112 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36126 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36106 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18217 max 18227 [ OK ] unbalanced bwidth - reverse direction 18214 max 18227 [ OK ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18366 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18347 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay 18218 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18459 ms, expected 18227 ms max 18227 [ fail ] 5 balanced bwidth transfer slower than expected! runtime 36128 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36106 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36125 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36108 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18172 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18288 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18312 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18265 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18344 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse direction18133 max 18227 [ OK ] 6 balanced bwidth transfer slower than expected! runtime 36114 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36085 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36156 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36109 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18345 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18409 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18167 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18317 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay 18178 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay - reverse direction18163 max 18227 [ OK ] 7 balanced bwidth transfer slower than expected! runtime 36150 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36087 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36108 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36082 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18292 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18442 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18283 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction 18203 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay 18218 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18383 ms, expected 18227 ms max 18227 [ fail ] 8 balanced bwidth transfer slower than expected! runtime 36090 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36089 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36106 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36101 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18271 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18267 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18330 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18323 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18332 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18357 ms, expected 18227 ms max 18227 [ fail ] 9 balanced bwidth transfer slower than expected! runtime 36134 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36108 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36110 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36077 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18256 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18232 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18265 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction 18211 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18389 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse direction18165 max 18227 [ OK ] 10 balanced bwidth transfer slower than expected! runtime 36113 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36089 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36092 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36103 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18413 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction 18162 max 18227 [ OK ] unbalanced bwidth with unbalanced delay 18139 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18349 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18256 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18540 ms, expected 18227 ms max 18227 [ fail ] 1 balanced bwidth transfer slower than expected! runtime 36095 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36168 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36112 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36120 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18235 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18445 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18310 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18299 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18388 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18493 ms, expected 18227 ms max 18227 [ fail ] 2 balanced bwidth transfer slower than expected! runtime 36134 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36202 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36174 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36145 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18144 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18329 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18281 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18512 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18297 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18361 ms, expected 18227 ms max 18227 [ fail ] 3 balanced bwidth transfer slower than expected! runtime 36186 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36166 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36157 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36185 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18207 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18270 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18148 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18247 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18405 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18495 ms, expected 18227 ms max 18227 [ fail ] 4 balanced bwidth transfer slower than expected! runtime 36128 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36145 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36176 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36109 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18355 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18521 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18203 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18282 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18473 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18415 ms, expected 18227 ms max 18227 [ fail ] 5 balanced bwidth transfer slower than expected! runtime 36131 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36167 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36173 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36143 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18182 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18377 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18184 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18274 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay 18151 max 18227 [ OK ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18450 ms, expected 18227 ms max 18227 [ fail ] 6 balanced bwidth transfer slower than expected! runtime 36129 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36199 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36133 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36158 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18133 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18488 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18334 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18457 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18379 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18271 ms, expected 18227 ms max 18227 [ fail ] 7 balanced bwidth transfer slower than expected! runtime 36135 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36119 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36131 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36112 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18344 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18378 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18145 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18434 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18612 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18535 ms, expected 18227 ms max 18227 [ fail ] 8 balanced bwidth transfer slower than expected! runtime 36158 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36180 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36108 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36136 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth 18183 max 18227 [ OK ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18352 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18151 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18423 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18333 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18373 ms, expected 18227 ms max 18227 [ fail ] 9 balanced bwidth transfer slower than expected! runtime 36123 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36152 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36112 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36128 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18267 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18311 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay 18167 max 18227 [ OK ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18294 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18279 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18392 ms, expected 18227 ms max 18227 [ fail ] 10 balanced bwidth transfer slower than expected! runtime 36152 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth - reverse direction transfer slower than expected! runtime 36164 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay transfer slower than expected! runtime 36172 ms, expected 36005 ms max 36005 [ fail ] balanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 36170 ms, expected 36005 ms max 36005 [ fail ] unbalanced bwidth transfer slower than expected! runtime 18345 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth - reverse direction transfer slower than expected! runtime 18317 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay transfer slower than expected! runtime 18367 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with unbalanced delay - reverse direction transfer slower than expected! runtime 18407 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay transfer slower than expected! runtime 18444 ms, expected 18227 ms max 18227 [ fail ] unbalanced bwidth with opposed, unbalanced delay - reverse directiontransfer slower than expected! runtime 18489 ms, expected 18227 ms max 18227 [ fail ]
Geliang Tang <geliang.tang@suse.com> 于2022年10月7日周五 16:59写道: > > On Thu, Oct 06, 2022 at 05:16:55PM -0700, Mat Martineau wrote: > > On Thu, 6 Oct 2022, Geliang Tang wrote: > > > > > v5: > > > - address Mat's comments in v4. > > > > Hi Geliang - > > > > Thanks for the v5. I haven't finished looking over all the patches in detail > > yet, but two things I do want to reply to right now: > > > > * Thanks for explaining in patch 4 that last_snd is still useful for round > > robin. I had forgotten about that, and it looked like a "write-only" > > variable in the kernel code. > > > > * In the meeting today Paolo suggested that a good test for the new > > scheduler loop would be to modify simult_flows.sh to use much larger files, > > then see if the modified code slowed down any of the simult_flows tests. > > > > He suggested making the test file 10x larger in simult_flows.sh: > > > > - size=$((2 * 2048 * 4096)) > > + size=$((2 * 2048 * 4096 * 10)) > > > > Can you compare the test times between the export branch and this series, > > with both of them using the larger file size? > > 10x larger failed in my tests with timeout. So I changed it to 5x > larger. > > Here's the patch: > > @@ -52,7 +52,7 @@ setup() > sout=$(mktemp) > cout=$(mktemp) > capout=$(mktemp) > - size=$((2 * 2048 * 4096)) > + size=$((2 * 2048 * 4096 * 5)) > > dd if=/dev/zero of=$small bs=4096 count=20 >/dev/null 2>&1 > dd if=/dev/zero of=$large bs=4096 count=$((size / 4096)) >/dev/null 2>&1 > @@ -210,13 +210,13 @@ do_transfer() > fi > > echo " [ fail ]" > - echo "client exit code $retc, server $rets" 1>&2 > - echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 > - ip netns exec ${ns3} ss -nita 1>&2 -o "sport = :$port" > - echo -e "\nnetns ${ns1} socket stat for $port:" 1>&2 > - ip netns exec ${ns1} ss -nita 1>&2 -o "dport = :$port" > - ls -l $sin $cout > - ls -l $cin $sout > + #echo "client exit code $retc, server $rets" 1>&2 > + #echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 > + #ip netns exec ${ns3} ss -nita 1>&2 -o "sport = :$port" > + #echo -e "\nnetns ${ns1} socket stat for $port:" 1>&2 > + #ip netns exec ${ns1} ss -nita 1>&2 -o "dport = :$port" > + #ls -l $sin $cout > + #ls -l $cin $sout > > cat "$capout" > return 1 > > All logs are attached. "5x_10times_export.log" is for the export branch > and "5x_10times_refactor_v5.log" is for this series. I compared the two log data. The test time of this series is indeed longer than that of export, but the difference is very small. I removed the useless information in the two logs and only retained the running time and expected time. It looks like this: > cat 5x_export.log | head 36150 max 36005 36135 max 36005 36087 max 36005 36103 max 36005 18284 max 18227 18349 max 18227 Add all running time and expected time: > awk '{ sum += $1 }; END { print sum }' 5x_export.log 2540920 > awk '{ sum += $3 }; END { print sum }' 5x_export.log 2533820 The ratio of the total running time to the total expected time is 1.00280209 (2540920/2533820). Use the same method to calculate data in 5x_10times_refactor_v5.log: > cat 5x_refactor_v5.log | head 36095 max 36005 36168 max 36005 36112 max 36005 36120 max 36005 18235 max 18227 18445 max 18227 > awk '{ sum += $1 }; END { print sum }' 5x_refactor_v5.log 2546024 > awk '{ sum += $3 }; END { print sum }' 5x_refactor_v5.log 2533820 The ratio is 1.00481644. It is 0.002 more than export data. I think this difference is acceptable. Thanks, -Geliang > > Thanks, > -Geliang > > > > > > > Thanks, > > > > Mat > > > > > > > > > > v4: > > > - update __mptcp_subflow_push_pending as Mat suggested. > > > - add more patches from "BPF redundant scheduler" series. > > > > > > v3: > > > - add a cleanup patch. > > > - remove msk->last_snd in mptcp_subflow_get_send(). > > > - add the loop that calls the scheduler again in __mptcp_push_pending(). > > > > > > v2: > > > - add snd_burst check in dfrags loop as Mat suggested. > > > > > > Refactor __mptcp_push_pending() and __mptcp_subflow_push_pending() to > > > remove duplicate code and support redundant scheduler more easily in > > > __mptcp_subflow_push_pending(). > > > > > > Geliang Tang (11): > > > Squash to "mptcp: add get_subflow wrappers" > > > mptcp: 'first' argument for subflow_push_pending > > > mptcp: refactor push_pending logic > > > mptcp: drop last_snd for burst scheduler > > > mptcp: simplify push_pending > > > mptcp: multi subflows push_pending > > > mptcp: use msk instead of mptcp_sk > > > mptcp: refactor subflow_push_pending logic > > > mptcp: simplify subflow_push_pending > > > mptcp: multi subflows subflow_push_pending > > > mptcp: multi subflows retrans support > > > > > > net/mptcp/pm.c | 9 +- > > > net/mptcp/pm_netlink.c | 3 - > > > net/mptcp/protocol.c | 285 ++++++++++++++++++++++------------------- > > > net/mptcp/protocol.h | 5 +- > > > net/mptcp/sched.c | 61 +++++---- > > > 5 files changed, 184 insertions(+), 179 deletions(-) > > > > > > -- > > > 2.35.3 > > > > > > > > > > > > > -- > > Mat Martineau > > Intel
On Mon, 10 Oct 2022, Geliang Tang wrote: > Geliang Tang <geliang.tang@suse.com> 于2022年10月7日周五 16:59写道: >> >> On Thu, Oct 06, 2022 at 05:16:55PM -0700, Mat Martineau wrote: >>> On Thu, 6 Oct 2022, Geliang Tang wrote: >>> >>>> v5: >>>> - address Mat's comments in v4. >>> >>> Hi Geliang - >>> >>> Thanks for the v5. I haven't finished looking over all the patches in detail >>> yet, but two things I do want to reply to right now: >>> >>> * Thanks for explaining in patch 4 that last_snd is still useful for round >>> robin. I had forgotten about that, and it looked like a "write-only" >>> variable in the kernel code. >>> >>> * In the meeting today Paolo suggested that a good test for the new >>> scheduler loop would be to modify simult_flows.sh to use much larger files, >>> then see if the modified code slowed down any of the simult_flows tests. >>> >>> He suggested making the test file 10x larger in simult_flows.sh: >>> >>> - size=$((2 * 2048 * 4096)) >>> + size=$((2 * 2048 * 4096 * 10)) >>> >>> Can you compare the test times between the export branch and this series, >>> with both of them using the larger file size? >> >> 10x larger failed in my tests with timeout. So I changed it to 5x >> larger. >> >> Here's the patch: >> >> @@ -52,7 +52,7 @@ setup() >> sout=$(mktemp) >> cout=$(mktemp) >> capout=$(mktemp) >> - size=$((2 * 2048 * 4096)) >> + size=$((2 * 2048 * 4096 * 5)) >> >> dd if=/dev/zero of=$small bs=4096 count=20 >/dev/null 2>&1 >> dd if=/dev/zero of=$large bs=4096 count=$((size / 4096)) >/dev/null 2>&1 >> @@ -210,13 +210,13 @@ do_transfer() >> fi >> >> echo " [ fail ]" >> - echo "client exit code $retc, server $rets" 1>&2 >> - echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 >> - ip netns exec ${ns3} ss -nita 1>&2 -o "sport = :$port" >> - echo -e "\nnetns ${ns1} socket stat for $port:" 1>&2 >> - ip netns exec ${ns1} ss -nita 1>&2 -o "dport = :$port" >> - ls -l $sin $cout >> - ls -l $cin $sout >> + #echo "client exit code $retc, server $rets" 1>&2 >> + #echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 >> + #ip netns exec ${ns3} ss -nita 1>&2 -o "sport = :$port" >> + #echo -e "\nnetns ${ns1} socket stat for $port:" 1>&2 >> + #ip netns exec ${ns1} ss -nita 1>&2 -o "dport = :$port" >> + #ls -l $sin $cout >> + #ls -l $cin $sout >> >> cat "$capout" >> return 1 >> >> All logs are attached. "5x_10times_export.log" is for the export branch >> and "5x_10times_refactor_v5.log" is for this series. > > I compared the two log data. The test time of this series is indeed > longer than that of export, but the difference is very small. > > I removed the useless information in the two logs and only retained > the running time and expected time. It looks like this: > >> cat 5x_export.log | head > 36150 max 36005 > 36135 max 36005 > 36087 max 36005 > 36103 max 36005 > 18284 max 18227 > 18349 max 18227 > > Add all running time and expected time: > >> awk '{ sum += $1 }; END { print sum }' 5x_export.log > 2540920 >> awk '{ sum += $3 }; END { print sum }' 5x_export.log > 2533820 > > The ratio of the total running time to the total expected time is > 1.00280209 (2540920/2533820). > > Use the same method to calculate data in 5x_10times_refactor_v5.log: > >> cat 5x_refactor_v5.log | head > 36095 max 36005 > 36168 max 36005 > 36112 max 36005 > 36120 max 36005 > 18235 max 18227 > 18445 max 18227 > >> awk '{ sum += $1 }; END { print sum }' 5x_refactor_v5.log > 2546024 >> awk '{ sum += $3 }; END { print sum }' 5x_refactor_v5.log > 2533820 > > The ratio is 1.00481644. It is 0.002 more than export data. I think > this difference is acceptable. > Thanks for taking a look at the data Geliang. To me it seems like the 0.2% difference is well within the margin of error, so there doesn't seem to be a significant performance regression in your data. Paolo, how does this performance look to you? -- Mat Martineau Intel
© 2016 - 2024 Red Hat, Inc.