[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d7b8cecf-d28a-1f4d-eb2b-eb8a601b9914@fb.com>
Date: Mon, 6 Jan 2020 21:36:17 +0000
From: Yonghong Song <yhs@...com>
To: Jiri Olsa <jolsa@...nel.org>, Alexei Starovoitov <ast@...nel.org>,
"Daniel Borkmann" <daniel@...earbox.net>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"bpf@...r.kernel.org" <bpf@...r.kernel.org>,
Andrii Nakryiko <andriin@...com>, Martin Lau <kafai@...com>,
Jakub Kicinski <jakub.kicinski@...ronome.com>,
David Miller <davem@...hat.com>
Subject: Re: [PATCH 1/5] bpf: Allow non struct type for btf ctx access
On 12/29/19 6:37 AM, Jiri Olsa wrote:
> I'm not sure why the restriction was added,
> but I can't access pointers to POD types like
> const char * when probing vfs_read function.
>
> Removing the check and allow non struct type
> access in context.
>
> Signed-off-by: Jiri Olsa <jolsa@...nel.org>
> ---
> kernel/bpf/btf.c | 6 ------
> 1 file changed, 6 deletions(-)
>
> diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
> index ed2075884724..ae90f60ac1b8 100644
> --- a/kernel/bpf/btf.c
> +++ b/kernel/bpf/btf.c
> @@ -3712,12 +3712,6 @@ bool btf_ctx_access(int off, int size, enum bpf_access_type type,
> /* skip modifiers */
> while (btf_type_is_modifier(t))
> t = btf_type_by_id(btf, t->type);
> - if (!btf_type_is_struct(t)) {
> - bpf_log(log,
> - "func '%s' arg%d type %s is not a struct\n",
> - tname, arg, btf_kind_str[BTF_INFO_KIND(t->info)]);
> - return false;
> - }
Hi, Jiri, the RFC looks great! Especially, you also referenced this will
give great performance boost for bcc scripts.
Could you provide more context on why the above change is needed?
The function btf_ctx_access is used to check validity of accessing
function parameters which are wrapped inside a structure, I am wondering
what kinds of accesses you tried to address here.
> bpf_log(log, "func '%s' arg%d has btf_id %d type %s '%s'\n",
> tname, arg, info->btf_id, btf_kind_str[BTF_INFO_KIND(t->info)],
> __btf_name_by_offset(btf, t->name_off));
>
Powered by blists - more mailing lists