From: Martin KaFai Lau <martin.lau@linux.dev>
To: "D. Wythe" <alibuda@linux.alibaba.com>
Cc: kuba@kernel.org, davem@davemloft.net, netdev@vger.kernel.org,
linux-s390@vger.kernel.org, linux-rdma@vger.kernel.org,
bpf@vger.kernel.org, kgraul@linux.ibm.com, wenjia@linux.ibm.com,
jaka@linux.ibm.com, ast@kernel.org, daniel@iogearbox.net,
andrii@kernel.org
Subject: Re: [PATCH bpf-next v2 1/2] net/smc: Introduce BPF injection capability for SMC
Date: Thu, 23 Mar 2023 13:46:40 -0700 [thread overview]
Message-ID: <366b9486-9a00-6add-d54b-5c3f4d35afe9@linux.dev> (raw)
In-Reply-To: <72030784-451a-2042-cbb7-98e1f9a544d5@linux.alibaba.com>
On 3/9/23 3:49 AM, D. Wythe wrote:
>>> --- /dev/null
>>> +++ b/net/smc/bpf_smc_struct_ops.c
>>> @@ -0,0 +1,146 @@
>>> +// SPDX-License-Identifier: GPL-2.0
>>> +
>>> +#include <linux/kernel.h>
>>> +#include <linux/bpf_verifier.h>
>>> +#include <linux/btf_ids.h>
>>> +#include <linux/bpf.h>
>>> +#include <linux/btf.h>
>>> +#include <net/sock.h>
>>> +#include <net/smc.h>
>>> +
>>> +extern struct bpf_struct_ops smc_sock_negotiator_ops;
>>> +
>>> +DEFINE_RWLOCK(smc_sock_negotiator_ops_rwlock);
>>> +struct smc_sock_negotiator_ops *negotiator;
>>
>> Is it sure one global negotiator (policy) will work for all smc_sock? or each
>> sk should have its own negotiator and the negotiator is selected by setsockopt.
>>
> This is really a good question, we can really consider adding an independent
> negotiator for each sock.
>
> But just like the TCP congestion control , the global negotiator can be used for
> sock without
>
> special requirements.
It is different from TCP congestion control (CC). TCP CC has a global default
but each sk can select what tcp-cc to use and there can be multiple tcp-cc
registered under different names.
It sounds like smc using tcp_sock should be able to have different negotiator
also (eg. based on dst IP or some other tcp connection characteristic). The
tcp-cc registration, per-sock selection and the rcu_read_lock+refcnt are well
understood and there are other bpf infrastructure to support the per sock tcp-cc
selection (like bpf_setsockopt).
For the network stack, there is little reason other af_* should not follow at
the beginning considering the infrastructure has already been built. The one
single global negotiator and reader/writer lock in this patch reads like an
effort wanted to give it a try and see if it will be useful before implementing
the whole thing. It is better to keep it off the tree for now until it is more
ready.
next prev parent reply other threads:[~2023-03-23 20:47 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-21 12:18 [PATCH bpf-next v2 0/2] net/smc: Introduce BPF injection capability D. Wythe
2023-02-21 12:18 ` [PATCH bpf-next v2 1/2] net/smc: Introduce BPF injection capability for SMC D. Wythe
2023-02-22 21:40 ` Martin KaFai Lau
2023-03-09 11:49 ` D. Wythe
2023-03-23 20:46 ` Martin KaFai Lau [this message]
2023-03-24 4:08 ` D. Wythe
2023-03-24 23:27 ` Martin KaFai Lau
2023-04-03 8:21 ` D. Wythe
2023-02-27 7:58 ` Wenjia Zhang
2023-02-28 8:50 ` D. Wythe
2023-02-28 8:58 ` Wenjia Zhang
2023-02-21 12:18 ` [PATCH bpf-next v2 2/2] bpf/selftests: add selftest for SMC bpf capability D. Wythe
2023-02-22 22:35 ` Martin KaFai Lau
2023-03-09 11:58 ` D. Wythe
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=366b9486-9a00-6add-d54b-5c3f4d35afe9@linux.dev \
--to=martin.lau@linux.dev \
--cc=alibuda@linux.alibaba.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=jaka@linux.ibm.com \
--cc=kgraul@linux.ibm.com \
--cc=kuba@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=wenjia@linux.ibm.com \
/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;
as well as URLs for NNTP newsgroup(s).