On Thu, Apr 12, 2007 at 02:50:17PM +0200, Trond Danielsen wrote:
> Hi,
>
> I have a problem with insufficent shared memory. I'm running GNU Radio
> from SVN, and keep getting these messages:
>
> gr_vmcircbuf_sysv_shm: shmget (1): No space left on device
> gr_buffer::allocate_buffer: failed to allocate buffer of size 32 KB
> terminate called after throwing an instance of 'std::bad_alloc'
> what(): St9bad_alloc
> Avbrutt (SIGABRT)
>
> I've tried increasing the maximum size of shared mem blocks with this
> command:
> sysctl -w kernel.shmmax=2147483648
>
> I've attached the block that causes these problems (it will not work
> if you try it, because some additional modules are missing). Any hints
> on how to solve this?
As Greg mentioned, this error is from shmget, and indicates
that there are not enough shared memory segments available.
Looks like kernel.shmmni may be the parameter that needs tweaking.
It's 4096 on my machines.
> gr.hier_block2.__init__(self,
> "acquisition",
> gr.io_signature(1,1,gr.sizeof_gr_complex),
> gr.io_signature(1,1, int(self.fft_size * gr.sizeof_float)))
>
> # aliases:
> c = lambda i, o, i_p=0, o_p=0: self.connect(i,i_p,o,o_p)
> d = lambda n, f: self.define_component( n, f)
>
> # Input signal; get Fourier transform of signal.
> d( "s2v_input",
> gr.stream_to_vector(gr.sizeof_gr_complex, self.fft_size))
> d( "fft_input",
> gr.fft_vcc(self.fft_size, True, self.window))
Eric