Subject: Re: pthread_create and mlock
To: Sourath Roy <>
From: Jason Thorpe <>
List: current-users
Date: 12/14/2006 13:43:44
On Dec 13, 2006, at 5:55 AM, Sourath Roy wrote:

> I got the wired memory limit by dumping vmstat, so that's fine with  
> me.
> I want to add something,
> pthread_create() does a mlock() but I don't see anything in the  
> libpthread that would suggest that memory is unlocked using  
> munlock(). I understand the logic of reusability, but what if there  
> are large number of threads spawned at a time and then the process  
> has only few threads. In that case, it would still be locking more  
> memory than what it practically should do.
> Am I missing something here?

When it is unmapped, it will be implicitly unlocked.

> Can anyone point me to the mlock() implementation? I am running  
> NetBSD on PowerPC.
> Thanks in advance!
> -- Sourath
> On 12/12/06, Sourath Roy <> wrote:
> Hi,
> While running my application on NetBSD, I often see a problem where  
> pthread_create() returns EAGAIN. Looking through the  
> pthread_create() function implementation it appeared to me that the  
> mlock() fails.
> Now the "locked memory" limit on my system is high enough for the  
> pthread_create() to fail on that. Is it truly the mlock failure, or  
> there is some known issues with pthread_create()?
> Also, when I try to change the per process MEMLOCK limit to higher  
> than the system default, I don't see any real increase. Is it  
> limited by the wired memory? Is there a system call on NetBSD that  
> would tell me the wired memory on the system?
> Thanks in advance!
> -- Sourath

-- thorpej