Re: Linux-5.4: bpf: test_core_reloc_arrays.o: Segmentation fault with llc -march=bpf

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

 




On 10/22/19 6:35 PM, Prabhakar Kushwaha wrote:
> 
>   Adding other mailing list, folks...
> 
> Hi All,
> 
> I am trying to build kselftest on Linux-5.4 on ubuntu 18.04. I installed
> LLVM-9.0.0 and Clang-9.0.0 from below links after following steps from
> [1] because of discussion [2]

Could you try latest llvm trunk (pre-release 10.0.0)?
LLVM 9.0.0 has some codes for CORE, but it is not fully supported and
has some bugs which are only fixed in LLVM 10.0.0. We intend to make
llvm 10 as the one we claim we have support. Indeed CORE related
changes are mostly added during 10.0.0 development period.

> 
>   https://urldefense.proofpoint.com/v2/url?u=https-3A__releases.llvm.org_9.0.0_llvm-2D9.0.0.src.tar.xz&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=skkgb9pZFIuJRG9JQNUcOnsiNBoYeDxEgrmStbFX4qs&s=fCk1MYIywY_WcJU6MlTqGT5KLLY95b5DhNMJwSxUv_8&e=
>   https://urldefense.proofpoint.com/v2/url?u=https-3A__releases.llvm.org_9.0.0_clang-2Dtools-2Dextra-2D9.0.0.src.tar.xz&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=skkgb9pZFIuJRG9JQNUcOnsiNBoYeDxEgrmStbFX4qs&s=2-ZFVNs_M0v6CT-oUpUvNRx_UHjMswWPhK9XNiuqLck&e=
>   https://urldefense.proofpoint.com/v2/url?u=https-3A__releases.llvm.org_9.0.0_cfe-2D9.0.0.src.tar.xz&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=skkgb9pZFIuJRG9JQNUcOnsiNBoYeDxEgrmStbFX4qs&s=C4i_D5AKTLTT0cYgHySiy-SOIuYCWvusxlANj0NrGLY&e=
> 
> Now, i am trying with llc -march=bpf, with this segmentation fault is
> coming as below:
> 
> gcc -g -Wall -O2 -I../../../include/uapi -I../../../lib
> -I../../../lib/bpf -I../../../../include/generated -DHAVE_GENHDR
> -I../../../include -Dbpf_prog_load=bpf_prog_test_load
> -Dbpf_load_program=bpf_test_load_program    test_flow_dissector.c
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_stub.o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/libbpf.a -lcap -lelf
> -lrt -lpthread -o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_flow_dissector
> gcc -g -Wall -O2 -I../../../include/uapi -I../../../lib
> -I../../../lib/bpf -I../../../../include/generated -DHAVE_GENHDR
> -I../../../include -Dbpf_prog_load=bpf_prog_test_load
> -Dbpf_load_program=bpf_test_load_program
> test_tcp_check_syncookie_user.c
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_stub.o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/libbpf.a -lcap -lelf
> -lrt -lpthread -o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_tcp_check_syncookie_user
> gcc -g -Wall -O2 -I../../../include/uapi -I../../../lib
> -I../../../lib/bpf -I../../../../include/generated -DHAVE_GENHDR
> -I../../../include -Dbpf_prog_load=bpf_prog_test_load
> -Dbpf_load_program=bpf_test_load_program    test_lirc_mode2_user.c
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_stub.o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/libbpf.a -lcap -lelf
> -lrt -lpthread -o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_lirc_mode2_user
> (clang -I. -I./include/uapi -I../../../include/uapi
> -I/usr/src/tovards/linux/tools/testing/selftests/bpf/../usr/include
> -D__TARGET_ARCH_arm64 -g -idirafter /usr/local/include -idirafter
> /usr/local/lib/clang/9.0.0/include -idirafter
> /usr/include/aarch64-linux-gnu -idirafter /usr/include
> -Wno-compare-distinct-pointer-types -O2 -target bpf -emit-llvm \
> -c progs/test_core_reloc_arrays.c -o - || echo "clang failed") | \
> llc -march=bpf -mcpu=probe  -filetype=obj -o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o
> Stack dump:
> 0. Program arguments: llc -march=bpf -mcpu=probe -filetype=obj -o
> /usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o
> 1. Running pass 'Function Pass Manager' on module '<stdin>'.
> 2. Running pass 'BPF Assembly Printer' on function '@test_core_arrays'
> #0 0x0000aaaac618db08 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
> (/usr/local/bin/llc+0x152eb08)
> Segmentation fault
> Makefile:260: recipe for target
> '/usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o'
> failed
> make[1]: ***
> [/usr/src/tovards/linux/tools/testing/selftests/bpf/test_core_reloc_arrays.o]
> Error 139
> 
> To add more details,
> Commenting following lines in bpf/progs/test_core_reloc_arrays.c
> removes the segmentation fault.
> 
> --- a/tools/testing/selftests/bpf/progs/test_core_reloc_arrays.c
> +++ b/tools/testing/selftests/bpf/progs/test_core_reloc_arrays.c
> @@ -41,15 +41,14 @@ int test_core_arrays(void *ctx)
>          if (BPF_CORE_READ(&out->a2, &in->a[2]))
>                  return 1;
>          /* in->b[1][2][3] */
> -       if (BPF_CORE_READ(&out->b123, &in->b[1][2][3]))
> -               return 1;
> +//     if (BPF_CORE_READ(&out->b123, &in->b[1][2][3]))
> +//             return 1;
>          /* in->c[1].c */
>          if (BPF_CORE_READ(&out->c1c, &in->c[1].c))
>                  return 1;
>          /* in->d[0][0].d */
> -       if (BPF_CORE_READ(&out->d00d, &in->d[0][0].d))
> -               return 1;
> -
> +//     if (BPF_CORE_READ(&out->d00d, &in->d[0][0].d))
> +//             return 1;
>          return 0;
>   }
> 
> It looks to be something related llc and more than 1 dimension array.
> has anyone faced such error.
> 
> Please suggest!!
> 
> --prabhakar(pk)
> 
> [1]
> https://urldefense.proofpoint.com/v2/url?u=https-3A__stackoverflow.com_questions_47255526_how-2Dto-2Dbuild-2Dthe-2Dlatest-2Dclang-2Dtidy&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=skkgb9pZFIuJRG9JQNUcOnsiNBoYeDxEgrmStbFX4qs&s=TdMHOl9-id7Li_XWFnrTefdK8yPUO1NUYr7u9AJdg1E&e=
> 
> [2] https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mail-2Darchive.com_netdev-40vger.kernel.org_msg315096.html&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=DA8e1B5r073vIqRrFz7MRA&m=skkgb9pZFIuJRG9JQNUcOnsiNBoYeDxEgrmStbFX4qs&s=gYS_CfBlAQG4gD3PxCEg82a5vBF2hpZjvvmXFaKOphY&e=
> 
> 
> Linux top-commit
> ----------------
> commit bc88f85c6c09306bd21917e1ae28205e9cd775a7 (HEAD -> master,
> origin/master, origin/HEAD)
> Author: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx>
> Date:   Wed Oct 16 12:24:58 2019 +0100
> 
>      kthread: make __kthread_queue_delayed_work static
> 
>      The __kthread_queue_delayed_work is not exported so
>      make it static, to avoid the following sparse warning:
> 
>        kernel/kthread.c:869:6: warning: symbol
> '__kthread_queue_delayed_work' was not declared. Should it be static?
> 
>      Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx>
>      Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> 




[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux