Not able to mlock

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi all!,

I am not able to mlock more than half of the memory available. I am
working on ARM processor in

64 MB of SDRAM memory is available. But I am not able to mlock more
than 32 MB. If I am trying to

allocate more than 32 MB, it return
an ENOMEM error. Can any one suggest me why this is happening and what
is the way to mlock more

than 32 MB?
Please let me know, do I need to set the limit for mlock in kernel? If
so, where do I set the

limit for mlock?  

Thanks and Regards,

Re: Not able to mlock
Quoted text here. Click to load it

IIRC, this limit is hard-coded in the kernel: The mlock() syscall
won't allow you to lock more than half of the physical memory. The
rationale is probably that if you lock too much memory, you might
lock up the machine. Whether it is helpful to impose a hard-coded
limit like this remains to be discussed...

(Moreover, at least older Linux kernels (<= 2.2 series) used to impose
this limit *per process*, so multiple processes could sucessfully lock
half of the physical memory *each*, and thus together they could still
manage to bring down the system. This may have been improved in more
recent kernels, though.)


Robert Kaiser                     email: rkaiser AT sysgo DOT com
SYSGO AG                
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline