[PATCH mptcp-next v9 0/6] BPF redundant scheduler

Geliang Tang posted 6 patches 3 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1655995770.git.geliang.tang@suse.com
Maintainers: Martin KaFai Lau <kafai@fb.com>, Alexei Starovoitov <ast@kernel.org>, Song Liu <songliubraving@fb.com>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Matthieu Baerts <matthieu.baerts@tessares.net>, Daniel Borkmann <daniel@iogearbox.net>, Paolo Abeni <pabeni@redhat.com>, Jakub Kicinski <kuba@kernel.org>, John Fastabend <john.fastabend@gmail.com>, Mat Martineau <mathew.j.martineau@linux.intel.com>, KP Singh <kpsingh@kernel.org>, Andrii Nakryiko <andrii@kernel.org>, Shuah Khan <shuah@kernel.org>, Yonghong Song <yhs@fb.com>
There is a newer version of this series
net/mptcp/protocol.c                          | 160 +++++++++++-------
net/mptcp/protocol.h                          |   2 +-
net/mptcp/sched.c                             |  56 +++---
net/mptcp/subflow.c                           |   4 +-
.../testing/selftests/bpf/prog_tests/mptcp.c  |  34 ++++
.../selftests/bpf/progs/mptcp_bpf_red.c       |  36 ++++
6 files changed, 201 insertions(+), 91 deletions(-)
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c
[PATCH mptcp-next v9 0/6] BPF redundant scheduler
Posted by Geliang Tang 3 years, 7 months ago
v9:
 - drop the extra *err paramenter of mptcp_sched_get_send() as Florian
   suggested.

v8:
 - update __mptcp_push_pending(), send the same data on each subflow.
 - update __mptcp_retrans, track the max sent data.
 = add a new patch.

v7:
 - drop redundant flag in v6
 - drop __mptcp_subflows_push_pending in v6
 - update redundant subflows support in __mptcp_push_pending
 - update redundant subflows support in __mptcp_retrans

v6:
 - Add redundant flag for struct mptcp_sched_ops.
 - add a dedicated function __mptcp_subflows_push_pending() to deal with
   redundat subflows push pending.

v5:
 - address to Paolo's comment, keep the optimization to
mptcp_subflow_get_send() for the non eBPF case.
 - merge mptcp_sched_get_send() and __mptcp_sched_get_send() in v4 into one.
 - depends on "cleanups for bpf sched selftests".

v4:
 - small cleanups in patch 1, 2.
 - add TODO in patch 3.
 - rebase patch 5 on 'cleanups for bpf sched selftests'.

v3:
 - use new API.
 - fix the link failure tests issue mentioned in ("https://patchwork.kernel.org/project/mptcp/cover/cover.1653033459.git.geliang.tang@suse.com/").

v2:
 - add MPTCP_SUBFLOWS_MAX limit to avoid infinite loops when the
   scheduler always sets call_again to true.
 - track the largest copied amount.
 - deal with __mptcp_subflow_push_pending() and the retransmit loop.
 - depends on "BPF round-robin scheduler" v14.

v1:

Implements the redundant BPF MPTCP scheduler, which sends all packets
redundantly on all available subflows.

Geliang Tang (6):
  Squash to "mptcp: add get_subflow wrappers"
  mptcp: accept right edge of mapping validating
  mptcp: redundant subflows push pending
  mptcp: redundant subflows retrans support
  selftests/bpf: Add bpf_red scheduler
  selftests/bpf: Add bpf_red test

 net/mptcp/protocol.c                          | 160 +++++++++++-------
 net/mptcp/protocol.h                          |   2 +-
 net/mptcp/sched.c                             |  56 +++---
 net/mptcp/subflow.c                           |   4 +-
 .../testing/selftests/bpf/prog_tests/mptcp.c  |  34 ++++
 .../selftests/bpf/progs/mptcp_bpf_red.c       |  36 ++++
 6 files changed, 201 insertions(+), 91 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c

-- 
2.35.3


Re: [PATCH mptcp-next v9 0/6] BPF redundant scheduler
Posted by Matthieu Baerts 3 years, 7 months ago
Hi Geliang,

On 23/06/2022 16:54, Geliang Tang wrote:
> v9:
>  - drop the extra *err paramenter of mptcp_sched_get_send() as Florian
>    suggested.

Just to be sure, did you see the last report from the CI:


- KVM Validation: normal:
  - Unstable: 3 failed test(s): mptcp_connect_mmap
selftest_mptcp_connect selftest_simult_flows - Critical: 2 Call Trace(s) ❌:
  - Task: https://cirrus-ci.com/task/6077066394206208
  - Summary:
https://api.cirrus-ci.com/v1/artifact/task/6077066394206208/summary/summary.txt


- KVM Validation: debug:
  - Unstable: 3 failed test(s): selftest_mptcp_connect
selftest_mptcp_join selftest_simult_flows - Critical: 2 Call Trace(s) ❌:
  - Task: https://cirrus-ci.com/task/5514116440784896
  - Summary:
https://api.cirrus-ci.com/v1/artifact/task/5514116440784896/summary/summary.txt

I guess it is linked to your modifications, no?

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