[Top][All Lists]

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

Re: [Discuss-gnuradio] Segfault with volk on 32 bit AMD

From: Frederick Stevens
Subject: Re: [Discuss-gnuradio] Segfault with volk on 32 bit AMD
Date: Sun, 18 Mar 2012 19:00:54 -0500
User-agent: Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120314 Thunderbird/11.0

Volk_profile ran to completion.  I am using the git source tree updated just before I did the run.  I commented out line 38 of volk_profile.cc as you suggested and ran volk_profile under gdb.  The output is in the attached text file.  I have also attached the generated volk_config from ~/.volk/volk_config.

I noted from running gnuradio-companion version 3.5.1, (which works) that when I use a multiply block, this message from python is generated:

>>> gr_fir_fff: using 3DNow!

but volk_profile does not seem to recognize the 3DNow! processor extensions (produces sse2 and sse3 messages on the Intel Atom 32 bit machine).

Hope this helps!  Let me know if you want me to try anything else.  I'll let you know how things turn out on the other machine as well.



On 03/18/2012 04:31 PM, Tom Rondeau wrote:
On Fri, Mar 16, 2012 at 6:11 PM, Frederick Stevens <address@hidden> wrote:
Well, after a few restarts, here is my output.  I did a fresh pull from git because I was getting some errors with missing *.h files in gruel/src/swig or something like that.  Hope this helps!

RUN_VOLK_TESTS: volk_32fc_32f_multiply_32fc_a

Program received signal SIGSEGV, Segmentation fault.
0xb7edbb74 in volk_32fc_32f_multiply_32fc_a_generic (cVector=0xb7448008,
    aVector=0xb7768008, bVector=0xb78f8008, num_points=204600)
    at /home/fred/extras/gnuradio/gnuradio/volk/include/volk/volk_32fc_32f_multiply_32fc_a.h:74
74          *cPtr++ = (*aPtr++) * (*bPtr++);
(gdb) bt
#0  0xb7edbb74 in volk_32fc_32f_multiply_32fc_a_generic (cVector=0xb7448008,
    aVector=0xb7768008, bVector=0xb78f8008, num_points=204600)
    at /home/fred/extras/gnuradio/gnuradio/volk/include/volk/volk_32fc_32f_multiply_32fc_a.h:74

Alright, Fred, definitely something strange going on here. My only guess is that for some reason on your architecture/OS/whatever, something is being handled incorrectly and the buffers a, b, and c are not getting generated correctly, maybe something like it's not doubling the number of items for the complex data type (before this function test, there are 16ic, or complex shorts, being tested, but this is the first complex float test).

It's hard to tell if it's something about it being an AMD chip, 32-bit, Slackware version, gcc version, etc. And I don't have an AMD chip to test on, but I could load up a 32-bit Slackware VM at least.

How much work are you willing to put into this to help us nail this down?

If you can follow through the volk_profile test code, we can start outputting more debug info. To start with, I'd suggest going into volk/apps/volk_profile.cc and commenting out line 38, rebuild the application, and run this new volk_profile to see if it fails on any other kernels.


Attachment: volk_profile-gdbrun_20120318.txt
Description: Text document

Attachment: volk_config
Description: Text document

reply via email to

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