discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Volk library invalid opcode exception


From: Joanna Rutkowska
Subject: Re: [Discuss-gnuradio] Volk library invalid opcode exception
Date: Sun, 15 Apr 2012 16:34:55 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1

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
>> > <address@hidden> wrote:
>>>> >> > On 04/15/12 15:28, Tom Rondeau wrote:
>>>>>> >>> >> On Sun, Apr 15, 2012 at 7:07 AM, Joanna Rutkowska
>>>>>> >>> >> <address@hidden> 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:
>>>>>>>> >>>> >>>
>>>>>>>> >>>> >>> address@hidden gnuradio]$ volk_profile
>>>>>>>> >>>> >>> Using Volk machine: avx_64
>>>>>>>> >>>> >>> RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f_a
>>>>>>>> >>>> >>> Illegal instruction
>>>>>>>> >>>> >>> address@hidden 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:
>>>>>>>> >>>> >>>
>>>>>>>> >>>> >>> address@hidden 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:
>>>> >> >
>>>> >> > address@hidden gnuradio]$ cd volk/
>>>> >> > address@hidden volk]$ mkdir build
>>>> >> > address@hidden volk]$ cd build/
>>>> >> > address@hidden build]$ cmake -D GR_RUNTIME_DIR=bin ..
>>>> >> > /.../
>>>> >> > address@hidden build]$ make
>>>> >> > /.../
>>>> >> > address@hidden 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:
> 
> address@hidden volk]$ cd build/
> address@hidden 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
> address@hidden 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...

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]