[<prev] [next>] [day] [month] [year] [list]
Message-ID: <1a6c00f5-1e92-ecf7-f296-503ca89e4220@bytedance.com>
Date: Sat, 8 Apr 2023 00:01:05 +0800
From: Feng Zhou <zhoufeng.zf@...edance.com>
To: Jiri Olsa <olsajiri@...il.com>
Cc: martin.lau@...ux.dev, ast@...nel.org, daniel@...earbox.net,
andrii@...nel.org, song@...nel.org, yhs@...com,
john.fastabend@...il.com, kpsingh@...nel.org, sdf@...gle.com,
haoluo@...gle.com, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, mykolal@...com,
shuah@...nel.org, bpf@...r.kernel.org,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
linux-kselftest@...r.kernel.org, yangzhenze@...edance.com,
wangdongdong.6@...edance.com, zhouchengming@...edance.com
Subject: Re: Re: [PATCH v2 0/2] Fix failure to access u32* argument of tracked
function
在 2023/4/7 18:49, Feng Zhou 写道:
> 在 2023/4/7 17:33, Jiri Olsa 写道:
>> On Fri, Apr 07, 2023 at 04:46:06PM +0800, Feng zhou wrote:
>>> From: Feng Zhou<zhoufeng.zf@...edance.com>
>>>
>>> When access traced function arguments with type is u32*, bpf
>>> verifier failed.
>>> Because u32 have typedef, needs to skip modifier. Add
>>> btf_type_is_modifier in
>>> is_int_ptr. Add a selftest to check it.
>>>
>>> Feng Zhou (2):
>>> bpf/btf: Fix is_int_ptr()
>>> selftests/bpf: Add test to access u32 ptr argument in tracing
>>> program
>> hi,
>> it breaks several tests in test_progs suite:
>>
>> #11/36 bpf_iter/link-iter:FAIL
>> #11 bpf_iter:FAIL
>> test_dummy_st_ops_attach:FAIL:dummy_st_ops_load unexpected error: -13
>> #63/1 dummy_st_ops/dummy_st_ops_attach:FAIL
>> test_dummy_init_ret_value:FAIL:dummy_st_ops_load unexpected error: -13
>> #63/2 dummy_st_ops/dummy_init_ret_value:FAIL
>> test_dummy_init_ptr_arg:FAIL:dummy_st_ops_load unexpected error: -13
>> #63/3 dummy_st_ops/dummy_init_ptr_arg:FAIL
>> test_dummy_multiple_args:FAIL:dummy_st_ops_load unexpected error: -13
>> #63/4 dummy_st_ops/dummy_multiple_args:FAIL
>> test_dummy_sleepable:FAIL:dummy_st_ops_load unexpected error: -13
>> #63/5 dummy_st_ops/dummy_sleepable:FAIL
>> #63 dummy_st_ops:FAIL
>> test_fentry_fexit:FAIL:fentry_skel_load unexpected error: -13
>> #69 fentry_fexit:FAIL
>> test_fentry_test:FAIL:fentry_skel_load unexpected error: -13
>> #70 fentry_test:FAIL
>>
>> jirka
>>
>
> I tried it, and it did cause the test to fail. Bpfverify reported an
> error,
> 'R1 invalid mem access'scalar', let me confirm the reason.
I used btf_type_skip_modifiers,but did not delete
the previous "t = btf_type_by_id (btf, t- > type);"
resulting in some testcases failing. I will send a
v3 nextweek, thank you for your suggestion.
>>> Changelog:
>>> v1->v2: Addressed comments from Martin KaFai Lau
>>> - Add a selftest.
>>> - use btf_type_skip_modifiers.
>>> Some details in here:
>>> https://lore.kernel.org/all/20221012125815.76120-1-zhouchengming@bytedance.com/
>>>
>>>
>>> kernel/bpf/btf.c | 5 ++---
>>> net/bpf/test_run.c | 8 +++++++-
>>> .../testing/selftests/bpf/verifier/btf_ctx_access.c | 13
>>> +++++++++++++
>>> 3 files changed, 22 insertions(+), 4 deletions(-)
>>>
>>> --
>>> 2.20.1
>>>
>
Powered by blists - more mailing lists