[PATCH mptcp-next v2 00/13] BPF packet scheduler updates part 2

Geliang Tang posted 13 patches 9 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1689650435.git.geliang.tang@suse.com
Maintainers: Matthieu Baerts <matthieu.baerts@tessares.net>, Mat Martineau <martineau@kernel.org>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Andrii Nakryiko <andrii@kernel.org>, Mykola Lysenko <mykolal@fb.com>, Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>, 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>, Shuah Khan <shuah@kernel.org>
net/mptcp/bpf.c                               |  44 ++--
net/mptcp/protocol.c                          |   4 +-
net/mptcp/protocol.h                          |   6 +
net/mptcp/sched.c                             |   6 +
tools/testing/selftests/bpf/bpf_tcp_helpers.h |   7 +-
.../testing/selftests/bpf/prog_tests/mptcp.c  |  91 +++++++-
.../selftests/bpf/progs/mptcp_bpf_bkup.c      |   5 +-
.../selftests/bpf/progs/mptcp_bpf_burst.c     | 197 ++++++++++++++++++
.../selftests/bpf/progs/mptcp_bpf_stale.c     |  63 ++++++
9 files changed, 384 insertions(+), 39 deletions(-)
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_stale.c
[PATCH mptcp-next v2 00/13] BPF packet scheduler updates part 2
Posted by Geliang Tang 9 months, 2 weeks ago
v2:
- Init nr to -1 for bpf_bkup and bpf_stale.
- Update has_bytes_sent() to make sure only one item showed in 'ss -it',
  this needs to start server with PORT_1.
- Rename to bpf_mptcp_subflow_memory_free() and
  bpf_mptcp_subflow_queues_empty().
- Simplify div_u64().
- Move mptcp_subflow_set_stale() to kernel space. stale is a bit filed,
  I haven't found a way to set a bit filed in BPF context yet, so set it
  in kernel space.
- Sync with new bpf_tcp_ca.c.

Geliang Tang (13):
  Squash to "bpf: Add bpf_mptcp_sched_ops"
  Squash to "selftests/bpf: Add bpf scheduler test"
  Squash to "selftests/bpf: Add bpf_first test"
  Squash to "selftests/bpf: Add bpf_bkup scheduler"
  Squash to "selftests/bpf: Add bpf_bkup test"
  Squash to "selftests/bpf: Add bpf_rr test"
  Squash to "selftests/bpf: Add bpf_red test"
  mptcp: add subflow_set_stale helper
  selftests/bpf: Add bpf_stale scheduler
  selftests/bpf: Add bpf_stale test
  bpf: Export more bpf_burst related functions
  selftests/bpf: Add bpf_burst scheduler
  selftests/bpf: Add bpf_burst test

 net/mptcp/bpf.c                               |  44 ++--
 net/mptcp/protocol.c                          |   4 +-
 net/mptcp/protocol.h                          |   6 +
 net/mptcp/sched.c                             |   6 +
 tools/testing/selftests/bpf/bpf_tcp_helpers.h |   7 +-
 .../testing/selftests/bpf/prog_tests/mptcp.c  |  91 +++++++-
 .../selftests/bpf/progs/mptcp_bpf_bkup.c      |   5 +-
 .../selftests/bpf/progs/mptcp_bpf_burst.c     | 197 ++++++++++++++++++
 .../selftests/bpf/progs/mptcp_bpf_stale.c     |  63 ++++++
 9 files changed, 384 insertions(+), 39 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c
 create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_stale.c

-- 
2.35.3
Re: [PATCH mptcp-next v2 00/13] BPF packet scheduler updates part 2
Posted by Mat Martineau 9 months, 1 week ago
On Tue, 18 Jul 2023, Geliang Tang wrote:

> v2:
> - Init nr to -1 for bpf_bkup and bpf_stale.
> - Update has_bytes_sent() to make sure only one item showed in 'ss -it',
>  this needs to start server with PORT_1.
> - Rename to bpf_mptcp_subflow_memory_free() and
>  bpf_mptcp_subflow_queues_empty().
> - Simplify div_u64().
> - Move mptcp_subflow_set_stale() to kernel space. stale is a bit filed,
>  I haven't found a way to set a bit filed in BPF context yet, so set it
>  in kernel space.
> - Sync with new bpf_tcp_ca.c.
>
> Geliang Tang (13):


Thanks for the patches Geliang.

I think the first 7 patches are ok to squash on the export branch:

>  Squash to "bpf: Add bpf_mptcp_sched_ops"
>  Squash to "selftests/bpf: Add bpf scheduler test"
>  Squash to "selftests/bpf: Add bpf_first test"
>  Squash to "selftests/bpf: Add bpf_bkup scheduler"
>  Squash to "selftests/bpf: Add bpf_bkup test"
>  Squash to "selftests/bpf: Add bpf_rr test"
>  Squash to "selftests/bpf: Add bpf_red test"

I have questions for a few of the remaining patches, I will reply 
separately to those.

- Mat

>  mptcp: add subflow_set_stale helper
>  selftests/bpf: Add bpf_stale scheduler
>  selftests/bpf: Add bpf_stale test
>  bpf: Export more bpf_burst related functions
>  selftests/bpf: Add bpf_burst scheduler
>  selftests/bpf: Add bpf_burst test
>
> net/mptcp/bpf.c                               |  44 ++--
> net/mptcp/protocol.c                          |   4 +-
> net/mptcp/protocol.h                          |   6 +
> net/mptcp/sched.c                             |   6 +
> tools/testing/selftests/bpf/bpf_tcp_helpers.h |   7 +-
> .../testing/selftests/bpf/prog_tests/mptcp.c  |  91 +++++++-
> .../selftests/bpf/progs/mptcp_bpf_bkup.c      |   5 +-
> .../selftests/bpf/progs/mptcp_bpf_burst.c     | 197 ++++++++++++++++++
> .../selftests/bpf/progs/mptcp_bpf_stale.c     |  63 ++++++
> 9 files changed, 384 insertions(+), 39 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c
> create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_stale.c
>
> -- 
> 2.35.3
>
>
>
Re: [PATCH mptcp-next v2 00/13] BPF packet scheduler updates part 2
Posted by Matthieu Baerts 9 months, 1 week ago
Hi Geliang, Mat,

On 18/07/2023 05:36, Geliang Tang wrote:
> v2:
> - Init nr to -1 for bpf_bkup and bpf_stale.
> - Update has_bytes_sent() to make sure only one item showed in 'ss -it',
>   this needs to start server with PORT_1.
> - Rename to bpf_mptcp_subflow_memory_free() and
>   bpf_mptcp_subflow_queues_empty().
> - Simplify div_u64().
> - Move mptcp_subflow_set_stale() to kernel space. stale is a bit filed,
>   I haven't found a way to set a bit filed in BPF context yet, so set it
>   in kernel space.
> - Sync with new bpf_tcp_ca.c.
> 
> Geliang Tang (13):
>   Squash to "bpf: Add bpf_mptcp_sched_ops"
>   Squash to "selftests/bpf: Add bpf scheduler test"
>   Squash to "selftests/bpf: Add bpf_first test"
>   Squash to "selftests/bpf: Add bpf_bkup scheduler"
>   Squash to "selftests/bpf: Add bpf_bkup test"
>   Squash to "selftests/bpf: Add bpf_rr test"
>   Squash to "selftests/bpf: Add bpf_red test"
>   mptcp: add subflow_set_stale helper
>   selftests/bpf: Add bpf_stale scheduler
>   selftests/bpf: Add bpf_stale test
>   bpf: Export more bpf_burst related functions
>   selftests/bpf: Add bpf_burst scheduler
>   selftests/bpf: Add bpf_burst test

Thank you for the patches and the reviews!

Just applied in our tree (feat. for other trees) with Mat's RvB tag on
patch 11-13:

New patches for t/upstream:
- 53ac64c3872b: "squashed" patch 1/13 in "bpf: Add bpf_mptcp_sched_ops"
- 0ab66f43ec70: "squashed" patch 2/13 in "selftests/bpf: Add bpf
scheduler test"
- 2fc5650638c1: "squashed" patch 3/13 in "selftests/bpf: Add bpf_first test"
- e98afc8e2110: "squashed" patch 4/13 in "selftests/bpf: Add bpf_bkup
scheduler"
- 0a920c696b80: "squashed" patch 5/13 in "selftests/bpf: Add bpf_bkup test"
- ca0924acae70: "squashed" patch 6/13 in "selftests/bpf: Add bpf_rr test"
- 4dfce80db661: "squashed" patch 7/13 in "selftests/bpf: Add bpf_red test"
- Results: b5ba626e6a54..59eafd2d73d8 (export)

- fd91a6aba636: bpf: Export more bpf_burst related functions
- ba9ff2266f7b: selftests/bpf: Add bpf_burst scheduler
- 558ed1c12d57: selftests/bpf: Add bpf_burst test
- Results: 59eafd2d73d8..e77fd85b3873 (export)

Tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20230728T160116

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net