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 joanna.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio