All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geliang Tang <geliang.tang@suse.com>
To: Matthieu Baerts <matthieu.baerts@tessares.net>
Cc: mptcp@lists.linux.dev
Subject: Re: [RFC mptcp-next 00/11] BPF packet scheduler updates part 4
Date: Tue, 15 Aug 2023 18:45:50 +0800	[thread overview]
Message-ID: <20230815104550.GA29593@bogon> (raw)
In-Reply-To: <2eac859e-6884-40d1-af20-e79f58424e06@tessares.net>

On Thu, Aug 10, 2023 at 05:50:05PM +0200, Matthieu Baerts wrote:
> Hi Geliang,
> 
> Thank you for these patches!
> 
> On 10/08/2023 16:09, Geliang Tang wrote:
> > There's a bug in bpf_burst. snd_burst stored in mptcp_burst_storage in
> > BPF context is not used. msk->snd_burst is still used in kernel space.
> > To fix this, add two new interfaces in mptcp_sched_ops to get and set
> > scheduler's paramters from BPF context to kernel space.
> 
> I didn't fully look at this series in details (and I don't have the full
> picture in mind) but I'm a bit worry about these parameters. I see two
> ways to extend the BPF packet schedulers:
> 
> (1) either we keep the API as it is and we parametrise actions like here
> 
> (2) or the new schedulers have more control on what is being done
> replacing what the core is doing to select what can be sent and where
> 
> I think that if we take the first option, we would limit the extensions:
> when a new scheduler will want to change what the core is doing, a new
> parameter will need to be added with more indirections, complexity, etc.
> 
> The second option requires some "big" changes in the scheduler API but
> it is probably the right time to do that and probably worth it. (but
> before modifying the code, we should probably discuss high level
> architecture). With this new API, BPF scheduler should be able to only
> modify the parts they want, leaving the rest like it is when the default
> scheduler is running (or use helpers to keep the behaviour of the core).
> 
> This is also somehow linked to issues #343 and #344 on GitHub.
> 
> > Geliang Tang (11):
> >   Squash to "mptcp: add struct mptcp_sched_ops"
> >   Squash to "mptcp: add scheduler wrappers"
> >   mptcp: use snd_burst wrappers
> >   Squash to "mptcp: register default scheduler"
> In other words, I think we should not modify the patches above and send
> them as their are to netdev. Then think about the strategy we want  to
> allow "any kind" of packet schedulers implemented in BPF.
> 
> WDYT?

I agree, let's deal with them after the scheduler refactor patches are
merged. Some patches below are still valid. They address to Mat's
comments in the series "add bpf_stale scheduler" v2. I'll repost them
as a v3 this week.

Thanks,
-Geliang

> 
> >   Squash to "bpf: Add bpf_mptcp_sched_ops"
> >   Squash to "selftests/bpf: Add mptcp sched structs"
> >   Squash to "selftests/bpf: Add bpf_bkup scheduler"
> >   Squash to "selftests/bpf: Add bpf_rr scheduler"
> >   Squash to "selftests/bpf: Add bpf_burst scheduler"
> >   selftests/bpf: Add bpf_stale scheduler
> >   selftests/bpf: Add bpf_stale test
> 
> Cheers,
> Matt
> -- 
> Tessares | Belgium | Hybrid Access Solutions
> www.tessares.net

      reply	other threads:[~2023-08-15 10:45 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-10 14:09 [RFC mptcp-next 00/11] BPF packet scheduler updates part 4 Geliang Tang
2023-08-10 14:09 ` [RFC mptcp-next 01/11] Squash to "mptcp: add struct mptcp_sched_ops" Geliang Tang
2023-08-10 14:09 ` [RFC mptcp-next 02/11] Squash to "mptcp: add scheduler wrappers" Geliang Tang
2023-08-10 14:09 ` [RFC mptcp-next 03/11] mptcp: use snd_burst wrappers Geliang Tang
2023-08-10 14:09 ` [RFC mptcp-next 04/11] Squash to "mptcp: register default scheduler" Geliang Tang
2023-08-10 14:09 ` [RFC mptcp-next 05/11] Squash to "bpf: Add bpf_mptcp_sched_ops" Geliang Tang
2023-08-10 14:09 ` [RFC mptcp-next 06/11] Squash to "selftests/bpf: Add mptcp sched structs" Geliang Tang
2023-08-10 14:09 ` [RFC mptcp-next 07/11] Squash to "selftests/bpf: Add bpf_bkup scheduler" Geliang Tang
2023-08-10 14:10 ` [RFC mptcp-next 08/11] Squash to "selftests/bpf: Add bpf_rr scheduler" Geliang Tang
2023-08-10 14:10 ` [RFC mptcp-next 09/11] Squash to "selftests/bpf: Add bpf_burst scheduler" Geliang Tang
2023-08-10 14:10 ` [RFC mptcp-next 10/11] selftests/bpf: Add bpf_stale scheduler Geliang Tang
2023-08-10 14:10 ` [RFC mptcp-next 11/11] selftests/bpf: Add bpf_stale test Geliang Tang
2023-08-10 15:23   ` selftests/bpf: Add bpf_stale test: Tests Results MPTCP CI
2023-08-10 15:50 ` [RFC mptcp-next 00/11] BPF packet scheduler updates part 4 Matthieu Baerts
2023-08-15 10:45   ` Geliang Tang [this message]

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=20230815104550.GA29593@bogon \
    --to=geliang.tang@suse.com \
    --cc=matthieu.baerts@tessares.net \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.