Re: [PATCH 1/5] bpf: Allow non struct type for btf ctx access

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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@xxxxxxxxxx>
> ---
>   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));
> 




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux