On 04/15/12 16:32, Joanna Rutkowska wrote: > On 04/15/12 16:29, Tom Rondeau wrote: >> > On Sun, Apr 15, 2012 at 10:11 AM, Joanna Rutkowska >> > <joa...@invisiblethingslab.com> wrote: >>>> >> > On 04/15/12 15:28, Tom Rondeau wrote: >>>>>> >>> >> On Sun, Apr 15, 2012 at 7:07 AM, Joanna Rutkowska >>>>>> >>> >> <joa...@invisiblethingslab.com> wrote: >>>>>>>> >>>> >>> Hello, I'm getting the invalid opcode exception whenever the >>>>>>>> >>>> >>> volk >>>>>>>> >>>> >>> library is used from gr/grc. It is also easy to reproduce by >>>>>>>> >>>> >>> executing >>>>>>>> >>>> >>> volk_profile: >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> [user@rflab gnuradio]$ volk_profile >>>>>>>> >>>> >>> Using Volk machine: avx_64 >>>>>>>> >>>> >>> RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f_a >>>>>>>> >>>> >>> Illegal instruction >>>>>>>> >>>> >>> [user@rflab gnuradio]$ dmesg >>>>>>>> >>>> >>> [ 6920.211094] volk_profile[25627] trap invalid opcode >>>>>>>> >>>> >>> ip:7f8145b74d40 >>>>>>>> >>>> >>> sp:7fff41dfac78 error:0 in >>>>>>>> >>>> >>> libvolk.so.0.0.0[7f8145ad7000+cf000] >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> I tried v3.5.2 and v3.5.2 build directly from git, using the >>>>>>>> >>>> >>> building >>>>>>>> >>>> >>> script from here: >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> http://gnuradio.org/redmine/repositories/changes/gnuradio/README >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> Here's my cpuinfo: >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> [user@rflab gnuradio]$ cat /proc/cpuinfo >>>>>>>> >>>> >>> processor : 0 >>>>>>>> >>>> >>> vendor_id : GenuineIntel >>>>>>>> >>>> >>> cpu family : 6 >>>>>>>> >>>> >>> model : 42 >>>>>>>> >>>> >>> model name : Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz >>>>>>>> >>>> >>> stepping : 7 >>>>>>>> >>>> >>> cpu MHz : 2591.660 >>>>>>>> >>>> >>> cache size : 3072 KB >>>>>>>> >>>> >>> physical id : 0 >>>>>>>> >>>> >>> siblings : 4 >>>>>>>> >>>> >>> core id : 1 >>>>>>>> >>>> >>> cpu cores : 1 >>>>>>>> >>>> >>> apicid : 3 >>>>>>>> >>>> >>> initial apicid : 3 >>>>>>>> >>>> >>> fpu : yes >>>>>>>> >>>> >>> fpu_exception : yes >>>>>>>> >>>> >>> cpuid level : 13 >>>>>>>> >>>> >>> wp : yes >>>>>>>> >>>> >>> flags : fpu de tsc msr pae cx8 sep cmov pat clflush >>>>>>>> >>>> >>> mmx fxsr sse sse2 >>>>>>>> >>>> >>> ss ht syscall nx lm constant_tsc nopl aperfmperf pni >>>>>>>> >>>> >>> pclmulqdq ssse3 >>>>>>>> >>>> >>> cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm ida >>>>>>>> >>>> >>> arat epb pln >>>>>>>> >>>> >>> pts dts >>>>>>>> >>>> >>> bogomips : 5183.32 >>>>>>>> >>>> >>> clflush size : 64 >>>>>>>> >>>> >>> cache_alignment : 64 >>>>>>>> >>>> >>> address sizes : 36 bits physical, 48 bits virtual >>>>>>>> >>>> >>> power management: >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> (and repeated 3x times for the other cores). >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> And, FWIW, this is the autoconfig snippet: >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> -- Configuring volk support... >>>>>>>> >>>> >>> -- Enabling volk support. >>>>>>>> >>>> >>> -- Override with -DENABLE_VOLK=ON/OFF >>>>>>>> >>>> >>> -- Boost version: 1.46.0 >>>>>>>> >>>> >>> -- Found the following Boost libraries: >>>>>>>> >>>> >>> -- unit_test_framework >>>>>>>> >>>> >>> -- checking for module 'orc-0.4' >>>>>>>> >>>> >>> -- found orc-0.4, version 0.4.16 >>>>>>>> >>>> >>> -- Found ORC: /usr/lib64/liborc-0.4.so >>>>>>>> >>>> >>> -- Check size of void* >>>>>>>> >>>> >>> -- Check size of void* - done >>>>>>>> >>>> >>> -- Performing Test have_maltivec >>>>>>>> >>>> >>> -- Performing Test have_maltivec - Failed >>>>>>>> >>>> >>> -- Performing Test have_mfpu=neon >>>>>>>> >>>> >>> -- Performing Test have_mfpu=neon - Failed >>>>>>>> >>>> >>> -- Performing Test have_mfloat-abi=softfp >>>>>>>> >>>> >>> -- Performing Test have_mfloat-abi=softfp - Failed >>>>>>>> >>>> >>> -- Performing Test have_funsafe-math-optimizations >>>>>>>> >>>> >>> -- Performing Test have_funsafe-math-optimizations - Success >>>>>>>> >>>> >>> -- 32 overruled >>>>>>>> >>>> >>> -- Performing Test have_m64 >>>>>>>> >>>> >>> -- Performing Test have_m64 - Success >>>>>>>> >>>> >>> -- Performing Test have_m3dnow >>>>>>>> >>>> >>> -- Performing Test have_m3dnow - Success >>>>>>>> >>>> >>> -- Performing Test have_msse4.2 >>>>>>>> >>>> >>> -- Performing Test have_msse4.2 - Success >>>>>>>> >>>> >>> -- Performing Test have_mpopcnt >>>>>>>> >>>> >>> -- Performing Test have_mpopcnt - Success >>>>>>>> >>>> >>> -- Performing Test have_mmmx >>>>>>>> >>>> >>> -- Performing Test have_mmmx - Success >>>>>>>> >>>> >>> -- Performing Test have_msse >>>>>>>> >>>> >>> -- Performing Test have_msse - Success >>>>>>>> >>>> >>> -- Performing Test have_msse2 >>>>>>>> >>>> >>> -- Performing Test have_msse2 - Success >>>>>>>> >>>> >>> -- Performing Test have_lorc-0.4 >>>>>>>> >>>> >>> -- Performing Test have_lorc-0.4 - Success >>>>>>>> >>>> >>> -- Performing Test have_msse3 >>>>>>>> >>>> >>> -- Performing Test have_msse3 - Success >>>>>>>> >>>> >>> -- Performing Test have_mssse3 >>>>>>>> >>>> >>> -- Performing Test have_mssse3 - Success >>>>>>>> >>>> >>> -- Performing Test have_msse4a >>>>>>>> >>>> >>> -- Performing Test have_msse4a - Success >>>>>>>> >>>> >>> -- Performing Test have_msse4.1 >>>>>>>> >>>> >>> -- Performing Test have_msse4.1 - Success >>>>>>>> >>>> >>> -- Performing Test have_mavx >>>>>>>> >>>> >>> -- Performing Test have_mavx - Success >>>>>>>> >>>> >>> -- Available arches: >>>>>>>> >>>> >>> generic;64;3dnow;abm;popcount;mmx;sse;sse2;orc;sse3;ssse3;sse4_a;sse4_1;sse4_2;avx >>>>>>>> >>>> >>> -- Available machines: >>>>>>>> >>>> >>> generic;sse2_only;sse2_64;sse3_64;ssse3_64;sse4_a_64;sse4_1_64;sse4_2_64;avx_64;avx_only >>>>>>>> >>>> >>> -- Using install prefix: /usr/local >>>>>>>> >>>> >>> -- Found Doxygen: /usr/bin/doxygen >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> One more thing to note that I'm running in a Xen PV VM, >>>>>>>> >>>> >>> although this >>>>>>>> >>>> >>> should not matter, as the usermode instructions execute >>>>>>>> >>>> >>> directly on the >>>>>>>> >>>> >>> CPU in this mode. >>>>>>>> >>>> >>> >>>>>>>> >>>> >>> Thanks, >>>>>>>> >>>> >>> joanna. >>>>>> >>> >> >>>>>> >>> >> Can you try to build using cmake? We've had some issues with the >>>>>> >>> >> autotools scripts setting up the right Volk machines and being on >>>>>> >>> >> a VM >>>>>> >>> >> might be confusing it. >>>>>> >>> >> >>>> >> > Hm... actually I've been using cmake already... Anyway, I tried to run >>>> >> > cmake only for the volk component manually: >>>> >> > >>>> >> > [user@rflab gnuradio]$ cd volk/ >>>> >> > [user@rflab volk]$ mkdir build >>>> >> > [user@rflab volk]$ cd build/ >>>> >> > [user@rflab build]$ cmake -D GR_RUNTIME_DIR=bin .. >>>> >> > /.../ >>>> >> > [user@rflab build]$ make >>>> >> > /.../ >>>> >> > [user@rflab build]$ apps/volk_profile >>>> >> > Using Volk machine: avx_64 >>>> >> > RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f_a >>>> >> > Illegal instruction >>>> >> > >>>> >> > Perhaps you meant to not use cmake? Can you provide the specific build >>>> >> > instructions I should try? >>>> >> > >>>> >> > Thanks, >>>> >> > joanna. >> > >> > No, I definitely meant that you should use cmake. Above you had >> > mentioned the "autoconfig snippet," so I though you were using the >> > autotools build. >> > >> > Does 'make test' pass? If not, can you run: >> > >> > ctest -V -R volk >> > >> > And provide the output. > It fails: > > [user@rflab volk]$ cd build/ > [user@rflab build]$ make test > Running tests... > Test project /rw/home/user/gnuradio/gnuradio/volk/build > Start 1: qa_volk_test_all > 1/1 Test #1: qa_volk_test_all .................***Failed 0.01 sec > > 0% tests passed, 1 tests failed out of 1 > > Total Test time (real) = 0.03 sec > > The following tests FAILED: > 1 - qa_volk_test_all (Failed) > Errors while running CTest > make: *** [test] Error 8 > [user@rflab build]$ ctest -V -R volk > UpdateCTestConfiguration from > :/rw/home/user/gnuradio/gnuradio/volk/build/DartConfiguration.tcl > UpdateCTestConfiguration from > :/rw/home/user/gnuradio/gnuradio/volk/build/DartConfiguration.tcl > Test project /rw/home/user/gnuradio/gnuradio/volk/build > Constructing a list of tests > Done constructing a list of tests > Checking test dependency graph... > Checking test dependency graph end > test 1 > Start 1: qa_volk_test_all > > 1: Test command: /rw/home/user/gnuradio/gnuradio/volk/build/lib/test_all > 1: Test timeout computed to be: 9.99988e+06 > 1: Running 88 test cases... > 1: Using Volk machine: avx_64 > 1: RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f_a > 1: unknown location(0): fatal error in > "volk_16ic_s32f_deinterleave_real_32f_a_test": signal: illegal operand; > address of failing instruction: 0x7fed0f681d40 > 1: /rw/home/user/gnuradio/gnuradio/volk/lib/testqa.cc(7): last checkpoint > 1: > 1: *** 1 failure detected in test suite "Master Test Suite" > 1/1 Test #1: qa_volk_test_all .................***Failed 0.01 sec > > 0% tests passed, 1 tests failed out of 1 > > Total Test time (real) = 0.02 sec > > The following tests FAILED: > 1 - qa_volk_test_all (Failed) > Errors while running CTest
BTW, it's an x64 Linux I'm running this on...
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio