At the moment it's easily reproducible. Same app runs under GR v3.3 with
no trouble. Let me know if I can provide any more info - in particular,
perhaps there's a special GDB command to dump the "xmm" register set?
Best Regards
Max
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(gdb) i stack
#0 0x0747ce98 in volk_32f_s32f_multiply_32f_a_sse () from
/usr/local/lib/libvolk.so.0.0.0
#1 0x0191cd84 in gr_multiply_const_ff::work(int, std::vector<void
const*, std::allocator<void const*> >&, std::vector<void*,
std::allocator<void*> >&) () from
/usr/local/lib/libgnuradio-core-3.6.1.so.0.0.0
#2 0x018afb57 in gr_sync_block::general_work(int, std::vector<int,
std::allocator<int> >&, std::vector<void const*, std::allocator<void
const*> >&, std::vector<void*, std::allocator<void*> >&) () from
/usr/local/lib/libgnuradio-core-3.6.1.so.0.0.0
#3 0x01890bb5 in gr_block_executor::run_one_iteration() () from
/usr/local/lib/libgnuradio-core-3.6.1.so.0.0.0
#4 0x018b2780 in
gr_tpb_thread_body::gr_tpb_thread_body(boost::shared_ptr<gr_block>, int)
() from /usr/local/lib/libgnuradio-core-3.6.1.so.0.0.0
#5 0x018abe36 in
boost::detail::function::void_function_obj_invoker0<gruel::thread_body_wrapper<tpb_container>,
void>::invoke(boost::detail::function::function_buffer&) () from
/usr/local/lib/libgnuradio-core-3.6.1.so.0.0.0
#6 0x0466c732 in boost::detail::thread_data<boost::function0<void>
>::run() () from /usr/local/lib/libgruel-3.6.1.so.0.0.0
#7 0x07fde029 in thread_proxy () from
/usr/lib/libboost_thread.so.1.42.0
#8 0x00c26e99 in start_thread () from
/lib/i386-linux-gnu/libpthread.so.0
#9 0x005f673e in clone () from /lib/i386-linux-gnu/libc.so.6
(gdb) x/10ib 0x0747ce98
=> 0x747ce98 <volk_32f_s32f_multiply_32f_a_sse+56>: movaps
(%ecx,%esi,1),%xmm0 0x747ce9c <volk_32f_s32f_multiply_32f_a_sse+60>:
add $0x1,%edi 0x747ce9f <volk_32f_s32f_multiply_32f_a_sse+63>: mulps
%xmm1,%xmm0 0x747cea2 <volk_32f_s32f_multiply_32f_a_sse+66>: movaps
%xmm0,(%eax,%esi,1) 0x747cea6 <volk_32f_s32f_multiply_32f_a_sse+70>:
add $0x10,%esi 0x747cea9 <volk_32f_s32f_multiply_32f_a_sse+73>: cmp
%edi,%edx 0x747ceab <volk_32f_s32f_multiply_32f_a_sse+75>: ja
0x747ce98 <volk_32f_s32f_multiply_32f_a_sse+56> 0x747cead
<volk_32f_s32f_multiply_32f_a_sse+77>: mov %edx,%edi 0x747ceaf
<volk_32f_s32f_multiply_32f_a_sse+79>: shl $0x4,%edi 0x747ceb2
<volk_32f_s32f_multiply_32f_a_sse+82>: add %edi,%ecx
(gdb) i r
eax 0xb1974c08 -1315484664
ecx 0xb190ec08 -1315902456
edx 0xaf 175
ebx 0x19d9ff4 27107316
esp 0xaf00efe4 0xaf00efe4
ebp 0xaf00f008 0xaf00f008
esi 0x0 0
edi 0x0 0
eip 0x747ce98 0x747ce98
<volk_32f_s32f_multiply_32f_a_sse+56>
eflags 0x210246 [ PF ZF IF RF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
on 2012-08-27 14:01
on 2012-09-01 18:10
On Fri, Aug 24, 2012 at 6:33 PM, ikjtel <ikj1234i@yahoo.com> wrote: > At the moment it's easily reproducible. Same app runs under GR v3.3 with no > trouble. Let me know if I can provide any more info - in particular, perhaps > there's a special GDB command to dump the "xmm" register set? > > Best Regards > > Max Max, Can you provide an example that's causing you problems? Also, what's the output of cmake, specifically for when volk tests the different SIMD types available? What's your processor and the output of 'cat /proc/cpuinfo'? The reason this doesn't cause a problem for you in 3.3 is because that's pre-Volk. This looks like you're running SSE operations on a system that doesn't support it. Tom
on 2012-09-04 04:38
> The reason this doesn't cause a problem for you in 3.3 is because > that's pre-Volk. This looks like you're running SSE operations on a > system that doesn't support it. Hi Tom I shall put together the full list of stuff you mentioned, but 3 quick things 1) the system apparently does support SSE (see below) 2) we have a few custom C++ blocks in the app, perhaps there's some rule we're breaking and so running afoul of the SSE instruction operand alignment restrictions (is this possible?) 3) the problem is happening in a relatively complex GR app [http://op25.osmocom.org/wiki/wiki/SignalScopePage , using audio-IF mode]. Both 2 and 3 point toward the need to try to reproduce the problem here with a simplified test app, finding the absolute minimum number of GR blocks needed to do so, and ruling out the possibility that's it's something we're doing wrong... Thanks Max ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 28 model name : Intel(R) Atom(TM) CPU N450 @ 1.66GHz stepping : 10 cpu MHz : 1000.000 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dts bogomips : 3333.52 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 28 model name : Intel(R) Atom(TM) CPU N450 @ 1.66GHz stepping : 10 cpu MHz : 1000.000 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dts bogomips : 3332.92 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 48 bits virtual power management:
on 2012-09-04 16:10
On Mon, Sep 3, 2012 at 10:36 PM, ikjtel <ikj1234i@yahoo.com> wrote: > >> The reason this doesn't cause a problem for you in 3.3 is because >> that's pre-Volk. This looks like you're running SSE operations on a >> system that doesn't support it. > > Hi Tom > I shall put together the full list of stuff you mentioned, but 3 quick things > > 1) the system apparently does support SSE (see below) Yes, looks like it. But it's an Atom, which might change things. I know we had some issues on Atom's before, but I thought that we worked them out. I'll be interested to see how cmake reports the architecture checks for VOLK here. > 2) we have a few custom C++ blocks in the app, perhaps there's some rule we're breaking and so running afoul of the SSE instruction operand alignment restrictions (is this possible?) > 3) the problem is happening in a relatively complex GR app [http://op25.osmocom.org/wiki/wiki/SignalScopePage , using audio-IF mode]. > > Both 2 and 3 point toward the need to try to reproduce the problem here with a simplified test app, finding the absolute minimum number of GR blocks needed to do so, and ruling out the possibility that's it's something we're doing wrong... > > Thanks > > Max Thanks. Not sure what to make of that, yet. What happens if you just have a sig_source_f->multiply_ff->null_sink? Tom ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~processor : 0
on 2012-09-04 22:04
> I'll be interested to see how cmake reports the architecture checks for VOLK here. pasted below. Hopefully the mailers won't mangle, if so i'll post it to a web page and send a link. > What happens if you just have a sig_source_f->multiply_ff->null_sink? :-( It works perfectly, without any crashes whatsoever. Will have to try harder to isolate it ... Max ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Script started on Tue 04 Sep 2012 03:49:30 PM EDT ~/tmp/gnuradio-3.6.1/build$ cmake ../ -- The CXX compiler identification is GNU -- The C compiler identification is GNU -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Build type not specified: defaulting to release. -- Found Git: /usr/bin/git -- Performing Test HAVE_VISIBILITY_HIDDEN -- Performing Test HAVE_VISIBILITY_HIDDEN - Success -- Performing Test HAVE_WARN_SIGN_COMPARE -- Performing Test HAVE_WARN_SIGN_COMPARE - Success -- Performing Test HAVE_WARN_ALL -- Performing Test HAVE_WARN_ALL - Success -- Performing Test HAVE_WARN_NO_UNINITIALIZED -- Performing Test HAVE_WARN_NO_UNINITIALIZED - Success -- Found PythonLibs: /usr/lib/libpython2.7.so -- Found SWIG: /usr/bin/swig (found version "1.3.40") -- Minimum SWIG version required is 1.3.31 -- -- The build system will automatically enable all components. -- Use -DENABLE_DEFAULT=OFF to disable components by default. -- -- Configuring python-support support... -- Dependency PYTHONLIBS_FOUND = TRUE -- Dependency SWIG_FOUND = TRUE -- Dependency SWIG_VERSION_CHECK = TRUE -- Enabling python-support support. -- Override with -DENABLE_PYTHON=ON/OFF -- checking for module 'cppunit' -- found cppunit, version 1.12.1 -- Found CPPUNIT: /usr/lib/libcppunit.so;dl -- -- Configuring testing-support support... -- Dependency CPPUNIT_FOUND = TRUE -- Enabling testing-support support. -- Override with -DENABLE_TESTING=ON/OFF -- -- Configuring volk support... -- Enabling volk support. -- Override with -DENABLE_VOLK=ON/OFF -- Found PythonInterp: /usr/bin/python2.7 -- -- Python checking for python >= 2.5 -- Python checking for python >= 2.5 - found -- -- Python checking for Cheetah >= 2.0.0 -- Python checking for Cheetah >= 2.0.0 - found -- Boost version: 1.42.0 -- Found the following Boost libraries: -- unit_test_framework -- checking for module 'orc-0.4 > 0.4.11' -- package 'orc-0.4 > 0.4.11' not found -- orc files (missing: ORC_LIBRARY ORC_INCLUDE_DIR ORCC_EXECUTABLE) -- Looking for cpuid.h -- Looking for cpuid.h - found -- Looking for intrin.h -- Looking for intrin.h - not found -- Looking for fenv.h -- Looking for fenv.h - found -- Looking for dlfcn.h -- Looking for dlfcn.h - found -- Compiler name: GNU -- x86* CPU detected -- 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 -- Performing Test have_m32 -- Performing Test have_m32 - Success -- Performing Test have_m64 -- Performing Test have_m64 - Failed -- 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_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 -- ORC support not found, Overruled arch orc -- Check size of void*[8] -- Check size of void*[8] - done -- CPU width is 32 bits, Overruled arch 64 -- Available architectures: generic;32;3dnow;abm;popcount;mmx;sse;sse2;norc;sse3;ssse3;sse4_a;sse4_1;sse4_2;avx -- Available machines: generic;sse2_32;sse3_32;ssse3_32;sse4_a_32;sse4_1_32;sse4_2_32;avx_32 -- Did not find liborc and orcc, disabling orc support... -- Using install prefix: /usr/local -- TRY_SHM_VMCIRCBUF set to ON. -- Found Doxygen: /usr/bin/doxygen -- Could NOT find Sphinx (missing: SPHINX_EXECUTABLE) -- -- Configuring doxygen support... -- Dependency DOXYGEN_FOUND = YES -- Enabling doxygen support. -- Override with -DENABLE_DOXYGEN=ON/OFF -- -- Configuring sphinx support... -- Dependency SPHINX_FOUND = FALSE -- Disabling sphinx support. -- Override with -DENABLE_SPHINX=ON/OFF -- Boost version: 1.42.0 -- Found the following Boost libraries: -- date_time -- program_options -- filesystem -- system -- thread -- -- Configuring gruel support... -- Dependency Boost_FOUND = TRUE -- Dependency PYTHONINTERP_FOUND = TRUE -- Enabling gruel support. -- Override with -DENABLE_GRUEL=ON/OFF -- Check if the system is big endian -- Searching 16 bit integer -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of unsigned short -- Check size of unsigned short - done -- Using unsigned short -- Check if the system is big endian - little endian -- Looking for C++ include byteswap.h -- Looking for C++ include byteswap.h - found -- Looking for C++ include arpa/inet.h -- Looking for C++ include arpa/inet.h - found -- Looking for C++ include netinet/in.h -- Looking for C++ include netinet/in.h - found -- Looking for C++ include signal.h -- Looking for C++ include signal.h - found -- Looking for C++ include sched.h -- Looking for C++ include sched.h - found -- Performing Test HAVE_PTHREAD_SIGMASK -- Performing Test HAVE_PTHREAD_SIGMASK - Success -- Performing Test HAVE_PTHREAD_SETSCHEDPARAM -- Performing Test HAVE_PTHREAD_SETSCHEDPARAM - Success -- Performing Test HAVE_SCHED_SETSCHEDULER -- Performing Test HAVE_SCHED_SETSCHEDULER - Success -- checking for module 'fftw3f >= 3.0' -- found fftw3f , version 3.2.2 -- Found FFTW3F: /usr/lib/libfftw3f.so -- -- Configuring gnuradio-core support... -- Dependency ENABLE_GRUEL = ON -- Dependency ENABLE_VOLK = ON -- Dependency Boost_FOUND = TRUE -- Dependency FFTW3F_FOUND = TRUE -- Dependency PYTHONINTERP_FOUND = TRUE -- Enabling gnuradio-core support. -- Override with -DENABLE_GR_CORE=ON/OFF -- Looking for C++ include netdb.h -- Looking for C++ include netdb.h - found -- Looking for C++ include sys/time.h -- Looking for C++ include sys/time.h - found -- Looking for C++ include sys/select.h -- Looking for C++ include sys/select.h - found -- Looking for C++ include sys/socket.h -- Looking for C++ include sys/socket.h - found -- Looking for C++ include io.h -- Looking for C++ include io.h - not found -- Looking for C++ include sys/mman.h -- Looking for C++ include sys/mman.h - found -- Looking for C++ include sys/ipc.h -- Looking for C++ include sys/ipc.h - found -- Looking for C++ include sys/shm.h -- Looking for C++ include sys/shm.h - found -- Looking for C++ include netinet/in.h -- Looking for C++ include netinet/in.h - found -- Looking for C++ include arpa/inet.h -- Looking for C++ include arpa/inet.h - found -- Looking for C++ include byteswap.h -- Looking for C++ include byteswap.h - found -- Looking for C++ include linux/ppdev.h -- Looking for C++ include linux/ppdev.h - found -- Looking for C++ include dev/ppbus/ppi.h -- Looking for C++ include dev/ppbus/ppi.h - not found -- Looking for C++ include unistd.h -- Looking for C++ include unistd.h - found -- Looking for C++ include malloc.h -- Looking for C++ include malloc.h - found -- Performing Test HAVE_SNPRINTF -- Performing Test HAVE_SNPRINTF - Success -- Performing Test HAVE_SIGACTION -- Performing Test HAVE_SIGACTION - Success -- Performing Test HAVE_SELECT -- Performing Test HAVE_SELECT - Success -- Performing Test HAVE_SYSCONF -- Performing Test HAVE_SYSCONF - Success -- Performing Test HAVE_GETPAGESIZE -- Performing Test HAVE_GETPAGESIZE - Success -- Performing Test HAVE_SSLEEP -- Performing Test HAVE_SSLEEP - Failed -- Performing Test HAVE_NANOSLEEP -- Performing Test HAVE_NANOSLEEP - Success -- Performing Test HAVE_GETTIMEOFDAY -- Performing Test HAVE_GETTIMEOFDAY - Success -- Performing Test HAVE_POSIX_MEMALIGN -- Performing Test HAVE_POSIX_MEMALIGN - Success -- Performing Test HAVE_VALLOC -- Performing Test HAVE_VALLOC - Success -- Performing Test HAVE_CREATEFILEMAPPING -- Performing Test HAVE_CREATEFILEMAPPING - Failed -- Looking for C++ include windows.h -- Looking for C++ include windows.h - not found -- Performing Test HAVE_SHM_OPEN -- Performing Test HAVE_SHM_OPEN - Success -- Performing Test HAVE_SINCOS -- Performing Test HAVE_SINCOS - Success -- Performing Test HAVE_SINCOSF -- Performing Test HAVE_SINCOSF - Success -- Performing Test HAVE_SINF -- Performing Test HAVE_SINF - Success -- Performing Test HAVE_COSF -- Performing Test HAVE_COSF - Success -- Performing Test HAVE_MMAP -- Performing Test HAVE_MMAP - Success -- Check size of void* -- Check size of void* - done -- Loading build date Tue, 04 Sep 2012 19:50:21 into gr_constants... -- Loading version 3.6.1 into gr_constants... -- Looking for C++ include sys/resource.h -- Looking for C++ include sys/resource.h - found -- -- Python checking for python >= 2.5 -- Python checking for python >= 2.5 - found -- -- Python checking for Cheetah >= 2.0.0 -- Python checking for Cheetah >= 2.0.0 - found -- -- Python checking for lxml >= 1.3.6 -- Python checking for lxml >= 1.3.6 - found -- -- Python checking for pygtk >= 2.10.0 -- Python checking for pygtk >= 2.10.0 - found -- -- Python checking for numpy -- Python checking for numpy - found -- -- Configuring gnuradio-companion support... -- Dependency ENABLE_GR_CORE = ON -- Dependency ENABLE_PYTHON = ON -- Dependency PYTHON_MIN_VER_FOUND = TRUE -- Dependency CHEETAH_FOUND = TRUE -- Dependency LXML_FOUND = TRUE -- Dependency PYGTK_FOUND = TRUE -- Dependency NUMPY_FOUND = TRUE -- Enabling gnuradio-companion support. -- Override with -DENABLE_GRC=ON/OFF -- -- Configuring gr-fft support... -- Dependency ENABLE_GRUEL = ON -- Dependency ENABLE_VOLK = ON -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Dependency FFTW3F_FOUND = TRUE -- Enabling gr-fft support. -- Override with -DENABLE_GR_FFT=ON/OFF -- -- Configuring gr-atsc support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Enabling gr-atsc support. -- Override with -DENABLE_GR_ATSC=ON/OFF -- -- Configuring gr-audio support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Enabling gr-audio support. -- Override with -DENABLE_GR_AUDIO=ON/OFF -- checking for module 'alsa' -- found alsa, version 1.0.24.1 -- Found ALSA 1.0.24.1 -- checking for module 'jack' -- package 'jack' not found -- Looking for C++ include AudioUnit/AudioUnit.h -- Looking for C++ include AudioUnit/AudioUnit.h - not found -- Looking for C++ include AudioToolbox/AudioToolbox.h -- Looking for C++ include AudioToolbox/AudioToolbox.h - not found -- checking for module 'portaudio' -- package 'portaudio' not found -- Could NOT find PORTAUDIO (missing: PORTAUDIO_INCLUDE_DIRS PORTAUDIO_LIBRARIES) -- checking for module 'comedilib' -- package 'comedilib' not found -- -- Configuring gr-comedi support... -- Dependency COMEDI_FOUND = -- Dependency LINUX = TRUE -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Disabling gr-comedi support. -- Override with -DENABLE_GR_COMEDI=ON/OFF -- -- Configuring gr-digital support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Enabling gr-digital support. -- Override with -DENABLE_GR_DIGITAL=ON/OFF -- -- Configuring gr-noaa support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Enabling gr-noaa support. -- Override with -DENABLE_GR_NOAA=ON/OFF -- -- Configuring gr-pager support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Enabling gr-pager support. -- Override with -DENABLE_GR_PAGER=ON/OFF -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - found -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - not found. -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found. -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - not found. -- Found Qt-Version 4.7.2 (using /usr/bin/qmake) -- Found Qwt: /usr/lib/libqwt-qt4.so -- -- Python checking for PyQt4 -- Python checking for PyQt4 - found -- -- Configuring gr-qtgui support... -- Dependency Boost_FOUND = TRUE -- Dependency QT4_FOUND = YES -- Dependency QWT_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Dependency PYTHONLIBS_FOUND = TRUE -- Dependency PYQT4_FOUND = TRUE -- Enabling gr-qtgui support. -- Override with -DENABLE_GR_QTGUI=ON/OFF -- -- Configuring gr-trellis support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Dependency ENABLE_GR_DIGITAL = ON -- Enabling gr-trellis support. -- Override with -DENABLE_GR_TRELLIS=ON/OFF -- checking for module 'uhd' -- package 'uhd' not found -- Could NOT find UHD (missing: UHD_LIBRARIES UHD_INCLUDE_DIRS) -- -- Configuring gr-uhd support... -- Dependency Boost_FOUND = TRUE -- Dependency UHD_FOUND = FALSE -- Dependency ENABLE_GR_CORE = ON -- Disabling gr-uhd support. -- Override with -DENABLE_GR_UHD=ON/OFF -- checking for module 'shd' -- package 'shd' not found -- Could NOT find SHD (missing: SHD_LIBRARIES SHD_INCLUDE_DIRS) -- -- Configuring gr-shd support... -- Dependency Boost_FOUND = TRUE -- Dependency SHD_FOUND = FALSE -- Dependency ENABLE_GR_CORE = ON -- Disabling gr-shd support. -- Override with -DENABLE_GR_SHD=ON/OFF -- -- Configuring gr-utils support... -- Dependency ENABLE_GR_CORE = ON -- Dependency ENABLE_PYTHON = ON -- Enabling gr-utils support. -- Override with -DENABLE_GR_UTILS=ON/OFF -- Looking for include files CMAKE_HAVE_PTHREAD_H -- Looking for include files CMAKE_HAVE_PTHREAD_H - found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- -- Configuring gr-video-sdl support... -- Dependency SDL_FOUND = YES -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Enabling gr-video-sdl support. -- Override with -DENABLE_GR_VIDEO_SDL=ON/OFF -- -- Configuring gr-vocoder support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Enabling gr-vocoder support. -- Override with -DENABLE_GR_VOCODER=ON/OFF -- checking for module 'libusb-1.0' -- package 'libusb-1.0' not found -- libusb-1.0 not found. -- -- Configuring gr-fcd support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Dependency ENABLE_GR_AUDIO = ON -- Dependency LIBUSB_FOUND = FALSE -- Disabling gr-fcd support. -- Override with -DENABLE_GR_FCD=ON/OFF -- checking for module 'gsl >= 1.10' -- found gsl , version 1.14 -- -- Configuring gr-wavelet support... -- Dependency Boost_FOUND = TRUE -- Dependency ENABLE_GR_CORE = ON -- Dependency GSL_FOUND = 1 -- Enabling gr-wavelet support. -- Override with -DENABLE_GR_WAVELET=ON/OFF -- -- Python checking for wx >= 2.8 -- Python checking for wx >= 2.8 - found -- -- Python checking for numpy -- Python checking for numpy - found -- -- Configuring gr-wxgui support... -- Dependency ENABLE_GR_CORE = ON -- Dependency ENABLE_PYTHON = ON -- Dependency NUMPY_FOUND = TRUE -- Dependency WX_FOUND = TRUE -- Enabling gr-wxgui support. -- Override with -DENABLE_GR_WXGUI=ON/OFF -- -- ###################################################### -- # Gnuradio enabled components -- ###################################################### -- * python-support -- * testing-support -- * volk -- * doxygen -- * gruel -- * gnuradio-core -- * gnuradio-companion -- * gr-fft -- * gr-atsc -- * gr-audio -- * gr-digital -- * gr-noaa -- * gr-pager -- * gr-qtgui -- * gr-trellis -- * gr-utils -- * gr-video-sdl -- * gr-vocoder -- * gr-wavelet -- * gr-wxgui -- -- ###################################################### -- # Gnuradio disabled components -- ###################################################### -- * sphinx -- * gr-comedi -- * gr-uhd -- * gr-shd -- * gr-fcd -- -- Using install prefix: /usr/local -- Building for version: 3.6.1 / 3.6.1 -- Configuring done -- Generating done -- Build files have been written to: /home/mhp/tmp/gnuradio-3.6.1/build
on 2012-09-05 03:02
> Yes, looks like it. But it's an Atom, which might change things. I > know we had some issues on Atom's before, but I thought that we worked > them out. I'll be interested to see how cmake reports the architecture > checks for VOLK here. Hi Tom I've made some further progress, and this may be premature, but I'll go so far as to say we can rule this out entirely. Here's a strawman theory - criticism of the theory is invited, shooting it down would be welcomed ; ) Our app uses lots of disconnect() and connect() calls because our appetite for widgets is bigger than the CPU available. Also, since the widgets are tab-selectable there is only one widget visible at a time. So when the user hits a tab we call disconnect and connect (surrounded by lock() / unlock() of course) in order to dynamically create a flow graph that connects up all the elements needed by that tab (and disconnects the elements, filters, demods, FFT's and other blocks that aren't needed by this tab, to conserve CPU. The theory is that this is "messing up" the boundary alignments of the operands to the SSE instructions, making them no longer properly aligned, resulting in a GPF. Here's the minimal python app , it seg faults in volk 100% reliably for me. If the call to shuffle() is removed, the script does not crash. Max p.s. kindly let me know if this code isn't properly machine-readable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/bin/env python import math import time from gnuradio import gr, gru, audio, eng_notation, blks2, optfir class app_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self, "mhp") self.source = gr.sig_source_f(48000, gr.GR_TRI_WAVE, 1.0, 1.0, 0) self.amp = gr.multiply_const_ff(65.0) self.sink = gr.null_sink(gr.sizeof_float) self.connect(self.source, self.amp, self.sink) self.amp_connected = True def shuffle(self): self.lock() if self.amp_connected: self.disconnect(self.source, self.amp, self.sink) self.connect(self.source, self.sink) else: self.disconnect(self.source, self.sink) self.connect(self.source, self.amp, self.sink) self.amp_connected = not self.amp_connected self.unlock() if __name__ == "__main__": tb = app_top_block() tb.start() while True: time.sleep(0.1) tb.shuffle()
on 2012-09-05 16:07
On Tue, Sep 4, 2012 at 9:01 PM, ikjtel <ikj1234i@yahoo.com> wrote: > I've made some further progress, and this may be premature, but I'll go so far as to say we can rule this out entirely. > > Here's a strawman theory - criticism of the theory is invited, shooting it down would be welcomed ; ) > > Our app uses lots of disconnect() and connect() calls because our appetite for widgets is bigger than the CPU available. Also, since the widgets are tab-selectable there is only one widget visible at a time. So when the user hits a tab we call disconnect and connect (surrounded by lock() / unlock() of course) in order to dynamically create a flow graph that connects up all the elements needed by that tab (and disconnects the elements, filters, demods, FFT's and other blocks that aren't needed by this tab, to conserve CPU. > > The theory is that this is "messing up" the boundary alignments of the operands to the SSE instructions, making them no longer properly aligned, resulting in a GPF. > > Here's the minimal python app , it seg faults in volk 100% reliably for me. If the call to shuffle() is removed, the script does not crash. > > Max Max, That's not a bad theory as I've run into the same situation before. I had a fix for that, though, back before the release of 3.6.0. It's possible that it's more complicated, though. I'll use your script to see if I can do more to figure it out. Tom
on 2012-10-03 21:55
On Wed, Sep 5, 2012 at 10:05 AM, Tom Rondeau <tom@trondeau.com> wrote: >> >> Max > >> >> self.disconnect(self.source, self.amp, self.sink) >> while True: >> time.sleep(0.1) >> tb.shuffle() >> Max, I believe I have fixed your problem. Check out the latest master branch (it's commit 77035b5d188be9e5dcd6731b1a58a4ce47451bde). I was using your demo code that you posted here as a test, and it's now working fine for me now. Tom
on 2012-10-04 17:03
> > I believe I have fixed your problem. Check out the latest master > branch (it's commit 77035b5d188be9e5dcd6731b1a58a4ce47451bde). > > I was using your demo code that you posted here as a test, and it's > now working fine for me now. > > Tom cool, I did a build from the git sources and so far it's solid when using the real-world app! Thanks Best Regards Max
on 2012-10-04 17:58
On Thu, Oct 4, 2012 at 11:02 AM, ikjtel <ikj1234i@yahoo.com> wrote: > cool, I did a build from the git sources and so far it's solid when using > the real-world app! Thanks > > Best Regards > > Max Great! Tom
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.