RE: Problem with mlockall() and Threads: memory usage

From: David Schwartz
Date: Tue May 18 2004 - 15:39:46 EST



> Thanks for that.
> I have done some more investigating, and on my system (Standard RedHat 9)
> the stack ulimit is set to 8192 KBytes. So it appears that the thread
> library/kernel threads pre-allocates, and writes to, 8129 KBytes
> of stack per
> thread and so then mlockall() locks all of this in memory.
>
> Should'nt the Thread library grow the stack rather than
> preallocate it all even
> with mlockall() like malloc ?

I thought you wanted improved latency. Surely having to find a page for you
when your stack grows will add unpredictable latency. So, no, the thread
library should reserve the stack when 'mlockall(MCL_FUTURE)' is specified.

I do agree that having an 'initial stack size' in additional to a 'maximum
stack size' would be a good idea. The former good for application that are
concerned about physical memory usage and the latter for applications
concerned about virtual memory usage.

DS


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/