On Sun, Apr 15, 2012 at 10:11 AM, Joanna Rutkowska <[email protected]> wrote: > On 04/15/12 15:28, Tom Rondeau wrote: >> On Sun, Apr 15, 2012 at 7:07 AM, Joanna Rutkowska >> <[email protected]> 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. Tom _______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
