From: Alexei Starovoitov <alexei.starovoitov@gmail.com> To: Andrii Nakryiko <andrii.nakryiko@gmail.com> Cc: "David S. Miller" <davem@davemloft.net>, Daniel Borkmann <daniel@iogearbox.net>, Networking <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>, Kernel Team <kernel-team@fb.com> Subject: Re: [PATCH v2 bpf-next 2/4] bpf: Introduce sleepable BPF programs Date: Fri, 29 May 2020 13:52:17 -0700 [thread overview] Message-ID: <20200529205217.kfwc646svq5cb4bv@ast-mbp.dhcp.thefacebook.com> (raw) In-Reply-To: <CAEf4BzaVHD7HyRDQGRCUKBDOZq-LcZpHrBoOjuOP+443Xc+Vaw@mail.gmail.com> On Fri, May 29, 2020 at 01:38:40PM -0700, Andrii Nakryiko wrote: > > > > if (prog->type == BPF_PROG_TYPE_STRUCT_OPS) > > > > return check_struct_ops_btf_id(env); > > > > > > > > @@ -10762,8 +10801,29 @@ static int check_attach_btf_id(struct bpf_verifier_env *env) > > > > if (ret) > > > > verbose(env, "%s() is not modifiable\n", > > > > prog->aux->attach_func_name); > > > > + } else if (prog->aux->sleepable) { > > > > + switch (prog->type) { > > > > + case BPF_PROG_TYPE_TRACING: > > > > + /* fentry/fexit progs can be sleepable only if they are > > > > + * attached to ALLOW_ERROR_INJECTION or security_*() funcs. > > > > + */ > > > > + ret = check_attach_modify_return(prog, addr); > > > > > > I was so confused about this piece... check_attach_modify_return() > > > should probably be renamed to something else, it's not for fmod_ret > > > only anymore. > > > > why? I think the name is correct. The helper checks whether target > > allows modifying its return value. It's a first while list. > > check_attach_modify_return() name implies to me that it's strictly for > fmod_ret-specific attachment checks, that's all. It's minor, if you > feel like name is appropriate I'm fine with it. ahh. i see the confusion. I've read check_attach_modify_return as whether target kernel function allows tweaking it's return value. whereas it sounds that you've read it as it's check whether target func is ok for modify_return bpf program type. > > > When that passes the black list applies via check_sleepable_blacklist() function. > > > > I was considering using whitelist for sleepable as well, but that's overkill. > > Too much overlap with mod_ret. > > Imo check whitelist + check blacklist for white list exceptions is clean enough. > > I agree about whitelist+blacklist, my only point was that > check_attach_modify_return() is not communicating that it's a > whitelist. check_sleepable_blacklist() is clear as day, > check_sleepable_whitelist() would be as clear, even if internally it > (for now) just calls into check_attach_modify_return(). Eventually it > might be evolved beyond what's in check_attach_modify_return(). Not a > big deal and can be changed later, if necessary. got it. I will wrap it into another helper.
next prev parent reply other threads:[~2020-05-29 20:52 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-29 4:38 [PATCH v2 bpf-next 0/4] bpf: Introduce minimal support for sleepable progs Alexei Starovoitov 2020-05-29 4:38 ` [PATCH v2 bpf-next 1/4] bpf: Fix use-after-free in fmod_ret check Alexei Starovoitov 2020-05-29 4:38 ` [PATCH v2 bpf-next 2/4] bpf: Introduce sleepable BPF programs Alexei Starovoitov 2020-05-29 8:25 ` Andrii Nakryiko 2020-05-29 20:12 ` Alexei Starovoitov 2020-05-29 20:38 ` Andrii Nakryiko 2020-05-29 20:52 ` Alexei Starovoitov [this message] 2020-05-31 2:19 ` kbuild test robot 2020-05-31 4:33 ` kbuild test robot 2020-05-29 4:38 ` [PATCH v2 bpf-next 3/4] libbpf: support sleepable progs Alexei Starovoitov 2020-05-29 4:38 ` [PATCH v2 bpf-next 4/4] selftests/bpf: basic sleepable tests Alexei Starovoitov
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=20200529205217.kfwc646svq5cb4bv@ast-mbp.dhcp.thefacebook.com \ --to=alexei.starovoitov@gmail.com \ --cc=andrii.nakryiko@gmail.com \ --cc=bpf@vger.kernel.org \ --cc=daniel@iogearbox.net \ --cc=davem@davemloft.net \ --cc=kernel-team@fb.com \ --cc=netdev@vger.kernel.org \ --subject='Re: [PATCH v2 bpf-next 2/4] bpf: Introduce sleepable BPF programs' \ /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
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).