On Fri, 28 Jul 2023, Matthieu Baerts wrote: > Hi Mat, > > On 28/07/2023 03:30, Mat Martineau wrote: >> 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! > > If I'm not mistaken, the 'stale' logic is currently used by the core not > to use a subflow (when calling mptcp_subflow_active()). A packet > scheduler might want to proactively mark a subflow as stall, e.g. if the > latency is too high, too many retransmissions, etc. and just set the > subflow as stale. > > But maybe we cannot do that because the core will reset stale in some > conditions? Maybe we need something similar but not reusing "stale"? > That's what I'm thinking, yes. Individual BPF schedulers could create their own "skip this subflow if possible" variables in their custom sk_storage structs, and those would not have the complex interactions with stale_count and stale_rcv_tstamp. - Mat