mlockall() failes on amd64

Martin Cracauer cracauer at cons.org
Thu Sep 21 08:45:46 PDT 2006


Danny Braniss wrote on Sat, Sep 16, 2006 at 07:17:11PM +0300: 
> > On Sep 16,  2:55pm, danny at cs.huji.ac.il (Danny Braniss) wrote:
> > -- Subject: mlockall() failes on amd64
> > 
> > | with am-utils  6.1.5, on a amd64 6.1-STABLE kernel i see:
> > | 	Couldn't lock process pages in memory using mlockall()
> > | while it's ok on a i386:
> > | 	Locked process pages in memory
> > | 
> > 
> > We should really fix amd to print the errno string when system calls
> > fail; now we can only scratch our heads.
> > 
> > christos
> sorry, here is the full message:
> Couldn't lock process pages in memory using mlockall(): Resource temporarily 
> unavailable
> 
> or error = EAGAIN (ED :-)

I didn't read the code, but one thing to check is that there is enough
paging space to move all dirty/cow/anonymous pages from all other
processes to to make room for your current process (including
file-backed pages which might not yet be in).

I imagine that on AMD64 some programs might overcommit much more since
it's "free" (you won't run out of virtual address space).  But
mlockall will choke on it. 

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer at cons.org>   http://www.cons.org/cracauer/
FreeBSD - where you want to go, today.      http://www.freebsd.org/


More information about the freebsd-amd64 mailing list