Marcus, Thanks for taking the time. It is possible I re-installed a new version of VOLK. I'll try a fresh build and see what that gets me.
I also should have mentioned that the filter works OK for a while then segfaults. A couple of packets always pass through the clock sync block I'm using before I get the segfault. Finally, the segfault occurs in the polyphase clock sync block, do you think I could have mis-configured the block in some way that will get me this error? I think the PF clock sync block is pretty popular so if there's a bug in that block that's causing this I'd be surprised. Devin On Thu, Dec 1, 2016 at 11:47 AM, Marcus Müller <marcus.muel...@ettus.com> wrote: > Hi Devin, > > I don't think it's a kernel problem – all your calculations happen in > userland, and the kernel has not much to say with respect to the > instructions used. > > The most common reason for this kind of misbehaviour is in fact a problem > with how the application (in this case, your GNU Radio application's block) > calls into the library function (in this case the VOLK dot product). > > Is it possible that for some reason, GNU Radio used a previous version of > VOLK when you linked it, and then the new version of VOLK was installed? > > Best regards, > > Marcus > > On 12/01/2016 05:23 PM, devin kelly wrote: > > Hello, > > I'm having a problem with the above VOLK function segfaulting. I don't > think I'm passing any incorrect values to VOLK. My problem could be that > I'm on RHEL7 with (obviously) an older kernel: > > $ uname -a > Linux 520842-mitll 3.10.0-327.10.1.el7.x86_64 #1 SMP Sat Jan 23 04:54:55 > EST 2016 x86_64 x86_64 x86_64 GNU/Linux > > I'm on VOLK 1.3 and GR 3.7.10.1. > > it segfaults here: > https://github.com/gnuradio/volk/blob/maint/kernels/volk/vol > k_32fc_32f_dot_prod_32fc.h#L119 > It looks like aPtr (0x7fea5c3014c0) is somehow not valid. GR passes this > pointer to VOLK so maybe it's a GR problem? > > I've copied the output of a GDB session and my CPU info below. > > Thanks for any help, > Devin > > > > Program terminated with signal 11, Segmentation fault. > #0 0x00007fea7b1bd8b7 in _mm256_load_ps (__P=0x7fea5c3014c0) at > /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/avxintrin.h:835 > 835 return *(__m256 *)__P; > Missing separate debuginfos, use: debuginfo-install > python-2.7.5-48.el7.x86_64 > (gdb) bt > #0 0x00007fea7b1bd8b7 in volk_32fc_32f_dot_prod_32fc_a_avx > (__P=0x7fea5c3014c0) at /usr/lib/gcc/x86_64-redhat-lin > ux/4.8.5/include/avxintrin.h:835 > #1 0x00007fea7b1bd8b7 in volk_32fc_32f_dot_prod_32fc_a_avx > (result=0x3665160, input=0x7fea5c3014c0, taps=0x3671a00, num_points=47) at > /local_disk/gr_3.7.10.1_src/volk/kernels/volk/volk_32fc_32f_ > dot_prod_32fc.h:119 > #2 0x00007fea6661d88f in gr::filter::kernel::fir_filter > _ccf::filter(std::complex<float> const*) () at > /local_disk/gr_3.7.10.1/lib64/libgnuradio-filter-3.7.10.1.so.0.0.0 > #3 0x00007fea66c01d01 in > gr::digital::pfb_clock_sync_ccf_impl::general_work(int, > std::vector<int, std::allocator<int> >&, std::vector<void const*, > std::allocator<void const*> >&, std::vector<void*, std::allocator<void*> > >&) () > at /local_disk/gr_3.7.10.1/lib64/libgnuradio-digital-3.7.10.1.so.0.0.0 > #4 0x00007fea7b73fe10 in gr::block_executor::run_one_iteration() () at > /local_disk/gr_3.7.10.1/lib64/libgnuradio-runtime-3.7.10.1.so.0.0.0 > #5 0x00007fea7b781120 in gr::tpb_thread_body::tpb_threa > d_body(boost::shared_ptr<gr::block>, int) () at > /local_disk/gr_3.7.10.1/lib64/libgnuradio-runtime-3.7.10.1.so.0.0.0 > #6 0x00007fea7b774821 in boost::detail::function::void_ > function_obj_invoker0<gr::thread::thread_body_wrapper<gr::tpb_container>, > void>::invoke(boost::detail::function::function_buffer&) () at > /local_disk/gr_3.7.10.1/lib64/libgnuradio-runtime-3.7.10.1.so.0.0.0 > #7 0x00007fea7b725ef0 in boost::detail::thread_data<boost::function0<void> > >::run() () at /local_disk/gr_3.7.10.1/lib64/ > libgnuradio-runtime-3.7.10.1.so.0.0.0 > #8 0x00007fea7a22427a in thread_proxy () at /lib64/libboost_thread-mt.so.1 > .53.0 > #9 0x00007fea960f3dc5 in start_thread () at /lib64/libpthread.so.0 > #10 0x00007fea9571973d in clone () at /lib64/libc.so.6 > (gdb) print __P > $1 = (const float *) 0x7fea5c3014c0 > (gdb) print *__P > Cannot access memory at address 0x7fea5c3014c0 > (gdb) print *(__m256 *)__P > Cannot access memory at address 0x7fea5c3014c0 > (gdb) f 1 > #1 volk_32fc_32f_dot_prod_32fc_a_avx (result=0x3665160, > input=0x7fea5c3014c0, taps=0x3671a00, num_points=47) at > /local_disk/gr_3.7.10.1_src/volk/kernels/volk/volk_32fc_32f_ > dot_prod_32fc.h:119 > 119 a0Val = _mm256_load_ps(aPtr); > (gdb) info locals > number = 0 > sixteenthPoints = 2 > res = {-1.30492652e+29, 0.0779444203} > realpt = 0x7fea57ffde50 > imagpt = 0x7fea57ffde54 > aPtr = 0x7fea5c3014c0 > bPtr = 0x3671a00 > a0Val = {-0.656753004, -0.658071458, -0.760932922, -0.762304127, > -0.869615495, -0.869560063, -0.887507021, -0.885902643} > a1Val = {-0.744178772, -0.742508531, -0.437728733, -0.437706977, > -0.0328192525, -0.0346645005, 0.376206338, 0.374125361} > a2Val = {0.711783648, 0.711464763, 0.931477308, 0.933318734, 1.01744843, > 1.01973152, 0.954917312, 0.955377996} > a3Val = {0.734342158, 0.732418418, 0.374049634, 0.371605545, > -0.0585254543, -0.0588675328, -0.461206883, -0.458686352} > b0Val = {0.0023738991, 0.0023738991, -0.00534401694, -0.00534401694, > 0.00242348039, 0.00242348039, 0.00727195293, 0.00727195293} > b1Val = {-0.0158917159, -0.0158917159, 0.00614725193, 0.00614725193, > 0.0485430211, 0.0485430211, -0.22138992, -0.22138992} > b2Val = {0, 0, 0.22138992, 0.22138992, -0.0485430211, -0.0485430211, > -0.00614725193, -0.00614725193} > b3Val = {0.0158917159, 0.0158917159, -0.00727195293, -0.00727195293, > -0.00242348039, -0.00242348039, 0.00534401694, 0.00534401694} > x0Val = {0.0023738991, -0.00534401694, 0.00242348039, 0.00727195293, > -0.0158917159, 0.00614725193, 0.0485430211, -0.22138992} > x1Val = {0, 0.22138992, -0.0485430211, -0.00614725193, 0.0158917159, > -0.00727195293, -0.00242348039, 0.00534401694} > x0loVal = {0.0023738991, 0.0023738991, -0.00534401694, -0.00534401694, > -0.0158917159, -0.0158917159, 0.00614725193, 0.00614725193} > x0hiVal = {0.00242348039, 0.00242348039, 0.00727195293, 0.00727195293, > 0.0485430211, 0.0485430211, -0.22138992, -0.22138992} > x1loVal = {0, 0, 0.22138992, 0.22138992, 0.0158917159, 0.0158917159, > -0.00727195293, -0.00727195293} > x1hiVal = {-0.0485430211, -0.0485430211, -0.00614725193, -0.00614725193, > -0.00242348039, -0.00242348039, 0.00534401694, 0.00534401694} > c0Val = {-0.00155906542, -0.00156219525, 0.00406643841, 0.00407376606, > -0.00210749614, -0.0021073618, -0.00645390945, -0.0064422423} > c1Val = {0.0118262777, 0.011799735, -0.00269082887, -0.00269069499, > -0.00159314566, -0.00168271956, -0.0832882896, -0.082827583} > c2Val = {0, 0, 0.206219688, 0.206627354, -0.0493900217, -0.0495008491, > -0.00587011734, -0.00587294903} > c3Val = {0.0116699571, 0.0116393855, -0.00272007124, -0.00270229811, > 0.000141835291, 0.000142664314, -0.00246469746, -0.00245122775} > dotProdVal0 = {0, 0, 0, 0, 0, 0, 0, 0} > dotProdVal1 = {0, 0, 0, 0, 0, 0, 0, 0} > dotProdVal2 = {0, 0, 0, 0, 0, 0, 0, 0} > dotProdVal3 = {0, 0, 0, 0, 0, 0, 0, 0} > dotProductVector = {0.0218032673, 0.0217418969, 0.204074427, 0.204509094, > -0.0519821495, -0.0521854945, -0.0983558819, -0.097870864} > (gdb) print *aPtr > Cannot access memory at address 0x7fea5c3014c0 > > > > > $ lscpu > Architecture: x86_64 > CPU op-mode(s): 32-bit, 64-bit > Byte Order: Little Endian > CPU(s): 4 > On-line CPU(s) list: 0-3 > Thread(s) per core: 2 > Core(s) per socket: 2 > Socket(s): 1 > NUMA node(s): 1 > Vendor ID: GenuineIntel > CPU family: 6 > Model: 61 > Model name: Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz > Stepping: 4 > CPU MHz: 2038.664 > BogoMIPS: 5187.61 > Virtualization: VT-x > L1d cache: 32K > L1i cache: 32K > L2 cache: 256K > L3 cache: 4096K > NUMA node0 CPU(s): 0-3 > > > > _______________________________________________ > Discuss-gnuradio mailing > listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio