MPTCP Linux Development
 help / color / mirror / Atom feed
From: Mat Martineau <martineau@kernel.org>
To: Geliang Tang <geliang.tang@suse.com>
Cc: mptcp@lists.linux.dev
Subject: Re: [PATCH mptcp-next v2 08/13] mptcp: add subflow_set_stale helper
Date: Thu, 27 Jul 2023 18:30:40 -0700 (PDT)	[thread overview]
Message-ID: <f678a249-e191-05ca-012f-28811c520b51@kernel.org> (raw)
In-Reply-To: <94b445b3225d4f91e2d05cab0338c4367ecbabb4.1689650435.git.geliang.tang@suse.com>

On Tue, 18 Jul 2023, Geliang Tang wrote:

> Add mptcp_subflow_set_stale() helper.
>

I was trying to remember the use case for this. The closest thing I can 
find is this:

     => the scheduler should be able to interact with the "stale" logic
        we have in the upstream kernel: mark a subflow as stale / back
        active.

from 
https://lore.kernel.org/mptcp/dd4363e7-d057-97e8-0b5f-8570f39aa538@tessares.net/

I think that need is met by the change in patch 11 to export 
mptcp_pm_subflow_chk_stale - if a particular scheduler wants to track some 
stale-like metric, it can do so with its own sk_storage values. There's 
also the matter of coordinating the values of stale_count and 
stale_rcv_tstamp.

My suggestion is to drop patches 8, 9, and 10 unless there's a compelling 
reason to allow a BPF scheduler to control this bit. If there's a need for 
it please speak up!


- Mat



> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> net/mptcp/bpf.c      | 1 +
> net/mptcp/protocol.h | 2 ++
> net/mptcp/sched.c    | 6 ++++++
> 3 files changed, 9 insertions(+)
>
> diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c
> index f388baf08d49..e6f94d5e22fb 100644
> --- a/net/mptcp/bpf.c
> +++ b/net/mptcp/bpf.c
> @@ -146,6 +146,7 @@ struct bpf_struct_ops bpf_mptcp_sched_ops = {
>
> BTF_SET8_START(bpf_mptcp_sched_kfunc_ids)
> BTF_ID_FLAGS(func, mptcp_subflow_set_scheduled)
> +BTF_ID_FLAGS(func, mptcp_subflow_set_stale)
> BTF_ID_FLAGS(func, mptcp_sched_data_set_contexts)
> BTF_ID_FLAGS(func, mptcp_subflow_ctx_by_pos)
> BTF_SET8_END(bpf_mptcp_sched_kfunc_ids)
> diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
> index 1b4457c44fe8..78b3beeb7d7a 100644
> --- a/net/mptcp/protocol.h
> +++ b/net/mptcp/protocol.h
> @@ -662,6 +662,8 @@ int mptcp_init_sched(struct mptcp_sock *msk,
> void mptcp_release_sched(struct mptcp_sock *msk);
> void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow,
> 				 bool scheduled);
> +void mptcp_subflow_set_stale(struct mptcp_subflow_context *subflow,
> +			     int stale);
> void mptcp_sched_data_set_contexts(const struct mptcp_sock *msk,
> 				   struct mptcp_sched_data *data);
> struct mptcp_subflow_context *
> diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c
> index a80cf0481edf..3f361e75e38c 100644
> --- a/net/mptcp/sched.c
> +++ b/net/mptcp/sched.c
> @@ -127,6 +127,12 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow,
> 	WRITE_ONCE(subflow->scheduled, scheduled);
> }
>
> +void mptcp_subflow_set_stale(struct mptcp_subflow_context *subflow,
> +			     int stale)
> +{
> +	subflow->stale = stale;
> +}
> +
> void mptcp_sched_data_set_contexts(const struct mptcp_sock *msk,
> 				   struct mptcp_sched_data *data)
> {
> -- 
> 2.35.3
>
>
>

  reply	other threads:[~2023-07-28  1:30 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-18  3:36 [PATCH mptcp-next v2 00/13] BPF packet scheduler updates part 2 Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 01/13] Squash to "bpf: Add bpf_mptcp_sched_ops" Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 02/13] Squash to "selftests/bpf: Add bpf scheduler test" Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 03/13] Squash to "selftests/bpf: Add bpf_first test" Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 04/13] Squash to "selftests/bpf: Add bpf_bkup scheduler" Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 05/13] Squash to "selftests/bpf: Add bpf_bkup test" Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 06/13] Squash to "selftests/bpf: Add bpf_rr test" Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 07/13] Squash to "selftests/bpf: Add bpf_red test" Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 08/13] mptcp: add subflow_set_stale helper Geliang Tang
2023-07-28  1:30   ` Mat Martineau [this message]
2023-07-28 15:55     ` Matthieu Baerts
2023-07-28 18:23       ` Mat Martineau
2023-07-18  3:36 ` [PATCH mptcp-next v2 09/13] selftests/bpf: Add bpf_stale scheduler Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 10/13] selftests/bpf: Add bpf_stale test Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 11/13] bpf: Export more bpf_burst related functions Geliang Tang
2023-07-28  1:33   ` Mat Martineau
2023-07-18  3:36 ` [PATCH mptcp-next v2 12/13] selftests/bpf: Add bpf_burst scheduler Geliang Tang
2023-07-18  3:36 ` [PATCH mptcp-next v2 13/13] selftests/bpf: Add bpf_burst test Geliang Tang
2023-07-18  5:01   ` selftests/bpf: Add bpf_burst test: Tests Results MPTCP CI
2023-07-28  2:56   ` MPTCP CI
2023-07-28  0:53 ` [PATCH mptcp-next v2 00/13] BPF packet scheduler updates part 2 Mat Martineau
2023-07-28 16:02 ` Matthieu Baerts

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f678a249-e191-05ca-012f-28811c520b51@kernel.org \
    --to=martineau@kernel.org \
    --cc=geliang.tang@suse.com \
    --cc=mptcp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox