Skip to content

rustc crashes when trying to bench upcoming neon-support in RustFFT with latest stdarch. #1227

Closed
@HEnquist

Description

@HEnquist

I'm working on adding neon support to RustFFT, and wanted to try the vld* and vst* instrinsics added here: #1224

First results were promising, but now I'm having a hard time running benchmarks because rustc crashes when building the benches. It crashes quite hard, without giving any useful error message. I'm using rust commit d14731c (simply master from yesterday, have also tried with a version from a couple of days ago with the same result), with stdarch updated to commit 931cdfb.

I would like to investigate this and try to at least help solve it, but I have no idea were to start. Any advice?

I'm trying to bench this branch: https://github.com/HEnquist/RustFFT/tree/vldx

I have tried on both a raspberry pi, and on an Oracle Ampere VM, with the same results.

Error:

pi@raspberrypi:~/RustFFT $ cargo bench --features neon neon_
   Compiling rustfft v6.0.1 (/home/pi/RustFFT)
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x826e48)[0x7f919b2e48]
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x7f96f1a788]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x11b83a4)[0x7f923443a4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x16b1810)[0x7f9283d810]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e1f4)[0x7f935fa1f4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e350)[0x7f935fa350]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246f570)[0x7f935fb570]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb5d674)[0x7f91ce9674]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb48ba4)[0x7f91cd4ba4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb4cfe8)[0x7f91cd8fe8]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa24380)[0x7f91bb0380]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa1eb14)[0x7f91baab14]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa95048)[0x7f91c21048]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xaf9320)[0x7f91c85320]
/mount/ssd/rustc/lib/libstd-ba7780e7efc39bcb.so(rust_metadata_std_2d103c436cd22770+0x8c380)[0x7f9108b380]
/lib/aarch64-linux-gnu/libpthread.so.0(+0x77e4)[0x7f90e3d7e4]
/lib/aarch64-linux-gnu/libc.so.6(+0xcfadc)[0x7f90f48adc]
error: could not compile `rustfft`

Caused by:
  process didn't exit successfully: `rustc --crate-name rustfft --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no --test --cfg 'feature="avx"' --cfg 'feature="default"' --cfg 'feature="neon"' --cfg 'feature="sse"' -C metadata=541f3979c27e3f0a -C extra-filename=-541f3979c27e3f0a --out-dir /home/pi/RustFFT/target/release/deps -L dependency=/home/pi/RustFFT/target/release/deps --extern num_complex=/home/pi/RustFFT/target/release/deps/libnum_complex-d7ededc7dd339a27.rlib --extern num_integer=/home/pi/RustFFT/target/release/deps/libnum_integer-0edf0ad8b3f42ac1.rlib --extern num_traits=/home/pi/RustFFT/target/release/deps/libnum_traits-7542682cf91f65c6.rlib --extern paste=/home/pi/RustFFT/target/release/deps/libpaste-49b243a423c645cd.so --extern primal_check=/home/pi/RustFFT/target/release/deps/libprimal_check-d5a43e363432ab49.rlib --extern rand=/home/pi/RustFFT/target/release/deps/librand-5cd04db47872812e.rlib --extern strength_reduce=/home/pi/RustFFT/target/release/deps/libstrength_reduce-1c2f1a65415e918e.rlib --extern transpose=/home/pi/RustFFT/target/release/deps/libtranspose-226cfc662b715315.rlib` (signal: 11, SIGSEGV: invalid memory reference)
warning: build failed, waiting for other jobs to finish...
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x826e48)[0x7f7f990e48]
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x7f84ef8788]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x11b83a4)[0x7f803223a4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x16b1810)[0x7f8081b810]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e1f4)[0x7f815d81f4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e350)[0x7f815d8350]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246f570)[0x7f815d9570]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb5d674)[0x7f7fcc7674]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb48ba4)[0x7f7fcb2ba4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb4cfe8)[0x7f7fcb6fe8]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa24380)[0x7f7fb8e380]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa1eb14)[0x7f7fb88b14]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa95048)[0x7f7fbff048]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xaf9320)[0x7f7fc63320]
/mount/ssd/rustc/lib/libstd-ba7780e7efc39bcb.so(rust_metadata_std_2d103c436cd22770+0x8c380)[0x7f7f069380]
/lib/aarch64-linux-gnu/libpthread.so.0(+0x77e4)[0x7f7ee1b7e4]
/lib/aarch64-linux-gnu/libc.so.6(+0xcfadc)[0x7f7ef26adc]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x826e48)[0x7fafd07e48]
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x7fb526f788]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x11b83a4)[0x7fb06993a4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x16b1810)[0x7fb0b92810]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e1f4)[0x7fb194f1f4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e350)[0x7fb194f350]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246f570)[0x7fb1950570]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb5d674)[0x7fb003e674]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb48ba4)[0x7fb0029ba4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb4cfe8)[0x7fb002dfe8]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa24380)[0x7faff05380]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa1eb14)[0x7fafeffb14]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa95048)[0x7faff76048]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xaf9320)[0x7faffda320]
/mount/ssd/rustc/lib/libstd-ba7780e7efc39bcb.so(rust_metadata_std_2d103c436cd22770+0x8c380)[0x7faf3e0380]
/lib/aarch64-linux-gnu/libpthread.so.0(+0x77e4)[0x7faf1927e4]
/lib/aarch64-linux-gnu/libc.so.6(+0xcfadc)[0x7faf29dadc]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x826e48)[0x7faa5c3e48]
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x7fafb2b788]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x11b83a4)[0x7faaf553a4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x16b1810)[0x7fab44e810]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e1f4)[0x7fac20b1f4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246e350)[0x7fac20b350]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0x246f570)[0x7fac20c570]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb5d674)[0x7faa8fa674]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb48ba4)[0x7faa8e5ba4]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xb4cfe8)[0x7faa8e9fe8]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa24380)[0x7faa7c1380]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa1eb14)[0x7faa7bbb14]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xa95048)[0x7faa832048]
/mount/ssd/rustc/lib/librustc_driver-b200c9ef89c7aa6a.so(+0xaf9320)[0x7faa896320]
/mount/ssd/rustc/lib/libstd-ba7780e7efc39bcb.so(rust_metadata_std_2d103c436cd22770+0x8c380)[0x7fa9c9c380]
/lib/aarch64-linux-gnu/libpthread.so.0(+0x77e4)[0x7fa9a4e7e4]
/lib/aarch64-linux-gnu/libc.so.6(+0xcfadc)[0x7fa9b59adc]
error: build failed

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions