lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6fddbb7c-50e4-2d1f-6f88-1d97107e816f@fb.com>
Date:   Wed, 23 Oct 2019 02:34:26 +0000
From:   Yonghong Song <yhs@...com>
To:     Prabhakar Kushwaha <prabhakar.pkin@...il.com>,
        "ast@...nel.org" <ast@...nel.org>,
        "daniel@...earbox.net" <daniel@...earbox.net>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "linux-kselftest@...r.kernel.org" <linux-kselftest@...r.kernel.org>
Subject: Re: Linux-5.4: bpf: test_core_reloc_arrays.o: Segmentation fault with
 llc -march=bpf



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 '@...t_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@...ethink.co.uk>
> 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@...ethink.co.uk>
>      Signed-off-by: Linus Torvalds <torvalds@...ux-foundation.org>
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ