Ron,

See if you can set kernel.shmmax to something higher. You can check the current value with

  sysctl kernel.shmmax

See sysctl(8).

Jeff

On 10/21/2014 04:12 PM, Ron Economos wrote:
I'm writing a block that requires a large amount of data to be processed
in one iteration of the work function. If I call set_output_multiple()
with 8100 * 130 = 1053000 items (of gr_complex), I get the following error:

gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::buffer::allocate_buffer: failed to allocate buffer of size 16456 KB
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget(1): Invalid argument
gr::buffer::allocate_buffer: failed to allocate buffer of size 16456 KB
terminate called after throwing an instance of 'std::bad_alloc'
   what():  std::bad_alloc


I realize that 16 Megabytes is a little large, but not astronomical.
The set_output_multiple() function does work fine with 8100 * 129
= 1044900 items (of gr_complex).

Is this some hard limitation in the shared memory library, or can it be
overridden somehow?

best regards,
Ron

_______________________________________________
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

Reply via email to