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:32:49 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1

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

joanna.

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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