Re: [linux-audio-dev] NPTL jack+ardour: large memlock required

From: Lee Revell <rlrevell@email-addr-hidden-job.com>
Date: Sat Dec 10 2005 - 06:43:05 EET

On Thu, 2005-12-08 at 16:50 +1030, Jonathan Woithe wrote:
> > On Fri, 2005-11-25 at 11:10 +1030, Jonathan Woithe wrote:
> > > I have since discovered (thanks to strace) that the problem lies in an
> > > mmap2() call which requests a size of around 8MB. It appears to be
> > > part of the NPTL pthread_create() function. The error returned by
> > > mmap2() (EAGAIN) indicates either a locked file or "too much locked
> > > memory" (according to the manpage). Because this is an anonymous map
> > > the problem must have been the latter. Increasing the "locked memory"
> > > limit from 20MB to 40MB made jackd start without having to resort to
> > > the LD_ASSUME_KERNEL hack.
> >
> > I stumbled across the same problem a few weeks ago working on another
> > project. This is glibc allocating an 8MB (!) stack for each thread. It
> > gets the default thread stack size from getrlimit(). With mlockall()
> > you will go OOM really fast like that.
> >
> > The real fix is for JACK to set a reasonable thread stack size in
> > jack_create_thread. You can work around the problem by appending this
> > line to /etc/security/limits.conf:
> >
> > * hard stack 512
> >
> > for a 512KB stack.
>
> I tried this. Although this reduced the size of the mlock calls I found I
> still needed an mlock limit of at least 40MB for jack and ardour to start.
> However, even with this loading a large session into ardour failed to load
> with no error given (beyond the fact that the loading failed).
>
> You mentioned in another post that you're working on a "proper" fix for
> jack. I'll wait for this to be implemented before digging into this
> issue further since the correct fix might change things. Drop me a line
> when a fix has made it into CVS and I'll resume my testing.

Um, all my fix will do is reduce the thread stack size to something more
reasonable, say 256KB per thread. You're still going to need an mlock
limit of more than 40MB to do anything useful.

Lee
Received on Sat Dec 10 08:15:05 2005

This archive was generated by hypermail 2.1.8 : Sat Dec 10 2005 - 08:15:06 EET