[PATCH mptcp-next v19 0/9] BPF redundant scheduler, part 1

Geliang Tang posted 9 patches 3 weeks, 6 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1668151131.git.geliang.tang@suse.com
Maintainers: Mat Martineau <mathew.j.martineau@linux.intel.com>, Matthieu Baerts <matthieu.baerts@tessares.net>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>, Andrii Nakryiko <andrii@kernel.org>, Martin KaFai Lau <martin.lau@linux.dev>, Song Liu <song@kernel.org>, Yonghong Song <yhs@fb.com>, John Fastabend <john.fastabend@gmail.com>, KP Singh <kpsingh@kernel.org>, Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>, Jiri Olsa <jolsa@kernel.org>, Mykola Lysenko <mykolal@fb.com>, Shuah Khan <shuah@kernel.org>
include/net/mptcp.h                           |   6 +-
net/mptcp/bpf.c                               |   1 +
net/mptcp/pm.c                                |   9 +-
net/mptcp/pm_netlink.c                        |   3 -
net/mptcp/protocol.c                          | 161 +++++++++---------
net/mptcp/protocol.h                          |   1 -
net/mptcp/sched.c                             |  21 ++-
tools/testing/selftests/bpf/bpf_tcp_helpers.h |   8 +-
.../selftests/bpf/progs/mptcp_bpf_bkup.c      |  10 +-
.../selftests/bpf/progs/mptcp_bpf_first.c     |  10 +-
.../selftests/bpf/progs/mptcp_bpf_rr.c        |  10 +-
11 files changed, 143 insertions(+), 97 deletions(-)
[PATCH mptcp-next v19 0/9] BPF redundant scheduler, part 1
Posted by Geliang Tang 3 weeks, 6 days ago
v19:
 - update patch 1.
 - split "BPF redundant scheduler" into two parts.
 - rebased on "export/20221111T055536".

Geliang Tang (9):
  mptcp: refactor push_pending logic
  mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
  mptcp: add sched_data_set_contexts helper
  Squash to "mptcp: add struct mptcp_sched_ops"
  Squash to "bpf: Add bpf_mptcp_sched_ops"
  Squash to "bpf: Add bpf_mptcp_sched_kfunc_set"
  Squash to "selftests/bpf: Add bpf_first scheduler"
  Squash to "selftests/bpf: Add bpf_bkup scheduler"
  Squash to "selftests/bpf: Add bpf_rr scheduler"

 include/net/mptcp.h                           |   6 +-
 net/mptcp/bpf.c                               |   1 +
 net/mptcp/pm.c                                |   9 +-
 net/mptcp/pm_netlink.c                        |   3 -
 net/mptcp/protocol.c                          | 161 +++++++++---------
 net/mptcp/protocol.h                          |   1 -
 net/mptcp/sched.c                             |  21 ++-
 tools/testing/selftests/bpf/bpf_tcp_helpers.h |   8 +-
 .../selftests/bpf/progs/mptcp_bpf_bkup.c      |  10 +-
 .../selftests/bpf/progs/mptcp_bpf_first.c     |  10 +-
 .../selftests/bpf/progs/mptcp_bpf_rr.c        |  10 +-
 11 files changed, 143 insertions(+), 97 deletions(-)

-- 
2.35.3
Re: [PATCH mptcp-next v19 0/9] BPF redundant scheduler, part 1
Posted by Matthieu Baerts 2 weeks, 6 days ago
Hi Geliang, Mat,

On 11/11/2022 08:47, Geliang Tang wrote:
> v19:
>  - update patch 1.
>  - split "BPF redundant scheduler" into two parts.
>  - rebased on "export/20221111T055536".
> 
> Geliang Tang (9):
>   mptcp: refactor push_pending logic
>   mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
>   mptcp: add sched_data_set_contexts helper
>   Squash to "mptcp: add struct mptcp_sched_ops"
>   Squash to "bpf: Add bpf_mptcp_sched_ops"
>   Squash to "bpf: Add bpf_mptcp_sched_kfunc_set"
>   Squash to "selftests/bpf: Add bpf_first scheduler"
>   Squash to "selftests/bpf: Add bpf_bkup scheduler"
>   Squash to "selftests/bpf: Add bpf_rr scheduler"

Thank you for the patches and the reviews!

I just applied them (+ an additional squash-to patch) in our tree (feat.
for other trees (bpf)) with Mat's RvB tag.

Patches 1/9 and 2/9 have been added at the beginning. Patch 3/9 depends
on "mptcp: add struct mptcp_sched_ops" and it has been applied just
before "bpf: Add bpf_mptcp_sched_ops" as mentioned by Geliang.

Please also note that patch 5/9 has been squashed in "selftests/bpf: Add
mptcp sched structs" instead of "bpf: Add bpf_mptcp_sched_ops. Do not
hesitate to tell me if something is not OK!

New patches for t/upstream:
- 602fba0955d1: mptcp: refactor push_pending logic
- 343f8eed9abb: mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
- Results: 69720c6cd168..ac857086fdb8 (export)

- 65e9504361f6: mptcp: add sched_data_set_contexts helper
- Results: ac857086fdb8..ae9c4d4cf58f (export)

- 82721c73112e: "squashed" patch 4/9 in "mptcp: add struct mptcp_sched_ops"
- a7c2367dd1d2: "squashed" patch 5/9 in "selftests/bpf: Add mptcp sched
structs"
- ee74ff707e4b: "squashed" patch 6/9 in "bpf: Add bpf_mptcp_sched_kfunc_set"
- 813537758eb5: "squashed" patch 7/9 in "selftests/bpf: Add bpf_first
scheduler"
- 762c5b194975: "squashed" patch 8/9 in "selftests/bpf: Add bpf_bkup
scheduler"
- 5db53c2d3ef6: "squashed" patch 9/9 in "selftests/bpf: Add bpf_rr
scheduler"
- Results: ae9c4d4cf58f..0814e9ff0a94 (export)

- 7b3058027867: "squashed" in "mptcp: refactor push_pending logic"
- Results: 0814e9ff0a94..d98411bcedd1 (export)

Tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20221118T145003

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
Re: [PATCH mptcp-next v19 0/9] BPF redundant scheduler, part 1
Posted by Geliang Tang 2 weeks, 6 days ago
On Fri, Nov 18, 2022 at 03:52:38PM +0100, Matthieu Baerts wrote:
> Hi Geliang, Mat,
> 
> On 11/11/2022 08:47, Geliang Tang wrote:
> > v19:
> >  - update patch 1.
> >  - split "BPF redundant scheduler" into two parts.
> >  - rebased on "export/20221111T055536".
> > 
> > Geliang Tang (9):
> >   mptcp: refactor push_pending logic
> >   mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
> >   mptcp: add sched_data_set_contexts helper
> >   Squash to "mptcp: add struct mptcp_sched_ops"
> >   Squash to "bpf: Add bpf_mptcp_sched_ops"
> >   Squash to "bpf: Add bpf_mptcp_sched_kfunc_set"
> >   Squash to "selftests/bpf: Add bpf_first scheduler"
> >   Squash to "selftests/bpf: Add bpf_bkup scheduler"
> >   Squash to "selftests/bpf: Add bpf_rr scheduler"
> 
> Thank you for the patches and the reviews!
> 
> I just applied them (+ an additional squash-to patch) in our tree (feat.
> for other trees (bpf)) with Mat's RvB tag.
> 
> Patches 1/9 and 2/9 have been added at the beginning. Patch 3/9 depends
> on "mptcp: add struct mptcp_sched_ops" and it has been applied just
> before "bpf: Add bpf_mptcp_sched_ops" as mentioned by Geliang.
> 
> Please also note that patch 5/9 has been squashed in "selftests/bpf: Add
> mptcp sched structs" instead of "bpf: Add bpf_mptcp_sched_ops. Do not
> hesitate to tell me if something is not OK!

Yes, it should be squashed in "selftests/bpf: Add mptcp sched structs".
Thanks for fix this.

-Geliang

> 
> New patches for t/upstream:
> - 602fba0955d1: mptcp: refactor push_pending logic
> - 343f8eed9abb: mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
> - Results: 69720c6cd168..ac857086fdb8 (export)
> 
> - 65e9504361f6: mptcp: add sched_data_set_contexts helper
> - Results: ac857086fdb8..ae9c4d4cf58f (export)
> 
> - 82721c73112e: "squashed" patch 4/9 in "mptcp: add struct mptcp_sched_ops"
> - a7c2367dd1d2: "squashed" patch 5/9 in "selftests/bpf: Add mptcp sched
> structs"
> - ee74ff707e4b: "squashed" patch 6/9 in "bpf: Add bpf_mptcp_sched_kfunc_set"
> - 813537758eb5: "squashed" patch 7/9 in "selftests/bpf: Add bpf_first
> scheduler"
> - 762c5b194975: "squashed" patch 8/9 in "selftests/bpf: Add bpf_bkup
> scheduler"
> - 5db53c2d3ef6: "squashed" patch 9/9 in "selftests/bpf: Add bpf_rr
> scheduler"
> - Results: ae9c4d4cf58f..0814e9ff0a94 (export)
> 
> - 7b3058027867: "squashed" in "mptcp: refactor push_pending logic"
> - Results: 0814e9ff0a94..d98411bcedd1 (export)
> 
> Tests are now in progress:
> 
> https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20221118T145003
> 
> Cheers,
> Matt
> -- 
> Tessares | Belgium | Hybrid Access Solutions
> www.tessares.net
Re: [PATCH mptcp-next v19 0/9] BPF redundant scheduler, part 1
Posted by Mat Martineau 3 weeks, 1 day ago
On Fri, 11 Nov 2022, Geliang Tang wrote:

> v19:
> - update patch 1.
> - split "BPF redundant scheduler" into two parts.
> - rebased on "export/20221111T055536".
>

Thanks Geliang.

I think v19 (part 1) looks ok for the export branch. simult_flows.sh was 
slightly faster (small sample size :) ) on my VM, for what it's worth.

Looks like the first three patches go at the beginning of the "features 
net-next-next" section, correct?

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>

> Geliang Tang (9):
>  mptcp: refactor push_pending logic
>  mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
>  mptcp: add sched_data_set_contexts helper
>  Squash to "mptcp: add struct mptcp_sched_ops"
>  Squash to "bpf: Add bpf_mptcp_sched_ops"
>  Squash to "bpf: Add bpf_mptcp_sched_kfunc_set"
>  Squash to "selftests/bpf: Add bpf_first scheduler"
>  Squash to "selftests/bpf: Add bpf_bkup scheduler"
>  Squash to "selftests/bpf: Add bpf_rr scheduler"
>
> include/net/mptcp.h                           |   6 +-
> net/mptcp/bpf.c                               |   1 +
> net/mptcp/pm.c                                |   9 +-
> net/mptcp/pm_netlink.c                        |   3 -
> net/mptcp/protocol.c                          | 161 +++++++++---------
> net/mptcp/protocol.h                          |   1 -
> net/mptcp/sched.c                             |  21 ++-
> tools/testing/selftests/bpf/bpf_tcp_helpers.h |   8 +-
> .../selftests/bpf/progs/mptcp_bpf_bkup.c      |  10 +-
> .../selftests/bpf/progs/mptcp_bpf_first.c     |  10 +-
> .../selftests/bpf/progs/mptcp_bpf_rr.c        |  10 +-
> 11 files changed, 143 insertions(+), 97 deletions(-)
>
> -- 
> 2.35.3
>
>
>

--
Mat Martineau
Intel
Re: [PATCH mptcp-next v19 0/9] BPF redundant scheduler, part 1
Posted by Geliang Tang 3 weeks, 1 day ago
On Tue, Nov 15, 2022 at 04:41:15PM -0800, Mat Martineau wrote:
> On Fri, 11 Nov 2022, Geliang Tang wrote:
> 
> > v19:
> > - update patch 1.
> > - split "BPF redundant scheduler" into two parts.
> > - rebased on "export/20221111T055536".
> > 
> 
> Thanks Geliang.
> 
> I think v19 (part 1) looks ok for the export branch. simult_flows.sh was
> slightly faster (small sample size :) ) on my VM, for what it's worth.
> 
> Looks like the first three patches go at the beginning of the "features
> net-next-next" section, correct?

Yes, the first two patches ("mptcp: refactor push_pending logic" and
"mptcp: drop last_snd and MPTCP_RESET_SCHEDULER") go at the beginning
of the "features net-next-next" section. But the third one "mptcp: add
sched_data_set_contexts helper" should be inserted between the commits
"mptcp: add scheduled in mptcp_subflow_context" and "bpf: Add
bpf_mptcp_sched_ops".

Thanks,
-Geliang

> 
> Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
> 
> > Geliang Tang (9):
> >  mptcp: refactor push_pending logic
> >  mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
> >  mptcp: add sched_data_set_contexts helper
> >  Squash to "mptcp: add struct mptcp_sched_ops"
> >  Squash to "bpf: Add bpf_mptcp_sched_ops"
> >  Squash to "bpf: Add bpf_mptcp_sched_kfunc_set"
> >  Squash to "selftests/bpf: Add bpf_first scheduler"
> >  Squash to "selftests/bpf: Add bpf_bkup scheduler"
> >  Squash to "selftests/bpf: Add bpf_rr scheduler"
> > 
> > include/net/mptcp.h                           |   6 +-
> > net/mptcp/bpf.c                               |   1 +
> > net/mptcp/pm.c                                |   9 +-
> > net/mptcp/pm_netlink.c                        |   3 -
> > net/mptcp/protocol.c                          | 161 +++++++++---------
> > net/mptcp/protocol.h                          |   1 -
> > net/mptcp/sched.c                             |  21 ++-
> > tools/testing/selftests/bpf/bpf_tcp_helpers.h |   8 +-
> > .../selftests/bpf/progs/mptcp_bpf_bkup.c      |  10 +-
> > .../selftests/bpf/progs/mptcp_bpf_first.c     |  10 +-
> > .../selftests/bpf/progs/mptcp_bpf_rr.c        |  10 +-
> > 11 files changed, 143 insertions(+), 97 deletions(-)
> > 
> > -- 
> > 2.35.3
> > 
> > 
> > 
> 
> --
> Mat Martineau
> Intel