discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Shared Memory Problem


From: Trond Danielsen
Subject: Re: [Discuss-gnuradio] Shared Memory Problem
Date: Thu, 12 Apr 2007 20:46:58 +0200

2007/4/12, Eric Blossom <address@hidden>:
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.

Thanks for the answers! kernel.shmmni is the same as on my machines,
so I doubt that it is the problem . But I have already solved the
problem; Johnathan pointed me to the single pole IIR filter that
solved my problem in a much better way than the solution that I came
up with. Apparently GNU Radio does not like 2000 simultaneous branches
in a single block...


BTW, I like your use of lambda expressions below:

Saves a lot of typing :)


>         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



--
Trond Danielsen




reply via email to

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