Re: [PATCH v14 00/19] tracing: fprobe: function_graph: Multi-function graph and fprobe on fgraph

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

 



On Thu, Sep 12, 2024 at 4:54 PM Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> On Thu, 12 Sep 2024 11:41:17 -0700
> Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote:
>
> > + BPF ML
> >
> > On Thu, Sep 12, 2024 at 8:35 AM <bot+bpf-ci@xxxxxxxxxx> wrote:
> > >
> > > Dear patch submitter,
> > >
> > > CI has tested the following submission:
> > > Status:     FAILURE
> > > Name:       [v14,00/19] tracing: fprobe: function_graph: Multi-function graph and fprobe on fgraph
> > > Patchwork:  https://patchwork.kernel.org/project/netdevbpf/list/?series=889822&state=*
> > > Matrix:     https://github.com/kernel-patches/bpf/actions/runs/10833792984
> > >
> > > Failed jobs:
> > > test_progs-aarch64-gcc: https://github.com/kernel-patches/bpf/actions/runs/10833792984/job/30061791397
> > > test_progs_no_alu32-aarch64-gcc: https://github.com/kernel-patches/bpf/actions/runs/10833792984/job/30061791836
> > > test_progs-s390x-gcc: https://github.com/kernel-patches/bpf/actions/runs/10833792984/job/30061757062
> > > test_progs_no_alu32-s390x-gcc: https://github.com/kernel-patches/bpf/actions/runs/10833792984/job/30061757809
> > >
> > > First test_progs failure (test_progs-aarch64-gcc):
> > > #132 kprobe_multi_testmod_test
> > > serial_test_kprobe_multi_testmod_test:PASS:load_kallsyms_local 0 nsec
> > > #132/1 kprobe_multi_testmod_test/testmod_attach_api_syms
> > > test_testmod_attach_api:PASS:fentry_raw_skel_load 0 nsec
> > > trigger_module_test_read:PASS:testmod_file_open 0 nsec
> > > test_testmod_attach_api:PASS:trigger_read 0 nsec
> > > kprobe_multi_testmod_check:FAIL:kprobe_test1_result unexpected kprobe_test1_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kprobe_test2_result unexpected kprobe_test2_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kprobe_test3_result unexpected kprobe_test3_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kretprobe_test1_result unexpected kretprobe_test1_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kretprobe_test2_result unexpected kretprobe_test2_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kretprobe_test3_result unexpected kretprobe_test3_result: actual 0 != expected 1
> > > #132/2 kprobe_multi_testmod_test/testmod_attach_api_addrs
> > > test_testmod_attach_api_addrs:PASS:ksym_get_addr_local 0 nsec
> > > test_testmod_attach_api_addrs:PASS:ksym_get_addr_local 0 nsec
> > > test_testmod_attach_api_addrs:PASS:ksym_get_addr_local 0 nsec
> > > test_testmod_attach_api:PASS:fentry_raw_skel_load 0 nsec
> > > trigger_module_test_read:PASS:testmod_file_open 0 nsec
> > > test_testmod_attach_api:PASS:trigger_read 0 nsec
> > > kprobe_multi_testmod_check:FAIL:kprobe_test1_result unexpected kprobe_test1_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kprobe_test2_result unexpected kprobe_test2_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kprobe_test3_result unexpected kprobe_test3_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kretprobe_test1_result unexpected kretprobe_test1_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kretprobe_test2_result unexpected kretprobe_test2_result: actual 0 != expected 1
> > > kprobe_multi_testmod_check:FAIL:kretprobe_test3_result unexpected kretprobe_test3_result: actual 0 != expected 1
> > >
> >
> > Seems like this selftest is still broken. Please let me know if you
> > need help with building and running BPF selftests to reproduce this
> > locally.
>
> Thanks, It will be helpful. Also I would like to know, is there any
> debug mode (like print more debug logs)?

So first of all, the assumption is that you will build a most recent
kernel with Kconfig values set from
tools/testing/selftests/bpf/config, so make sure you  append that to
your kernel config. Then build the kernel, BPF selftests' Makefile
tries to find latest built kernel (according to KBUILD_OUTPUT/O/etc).

Now to building BPF selftests:

$ cd tools/testing/selftests/bpf
$ make -j$(nproc)

You'll need decently recent Clang and a few dependent packages. At
least elfutils-devel, libzstd-devel, but there might be a few more
which I never can remember.

Once everything is built, you can run the failing test with

$ sudo ./test_progs -t kprobe_multi_testmod_test -v

The source code for user space part for that test is in
prog_tests/kprobe_multi_testmod_test.c and BPF-side is in
progs/kprobe_multi.c.

Taking failing output from the test:

> > > kprobe_multi_testmod_check:FAIL:kretprobe_test3_result unexpected kretprobe_test3_result: actual 0 != expected 1

kretprobe_test3_result is a sort of identifier for a test condition,
you can find a corresponding line in user space .c file grepping for
that:

ASSERT_EQ(skel->bss->kretprobe_testmod_test3_result, 1,
"kretprobe_test3_result");

Most probably the problem is in:

__u64 addr = bpf_get_func_ip(ctx);

which is then checked as

if ((const void *) addr == &bpf_testmod_fentry_test3)


With your patches this doesn't match anymore.


Hopefully the above gives you some pointers, let me know if you run
into any problems.

>
> Thank you,
>
> >
> > >
> > > Please note: this email is coming from an unmonitored mailbox. If you have
> > > questions or feedback, please reach out to the Meta Kernel CI team at
> > > kernel-ci@xxxxxxxx.
>
>
> --
> Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>





[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