Also, this means that I can screw up other processes for no good reason, even though only my proc should get killed for going over quota.
"Mappings are overcommited because mappings are routinely undercommitted"
Could you please explain this again? I'm not quite sure I parsed that out correctly. Thanks!
I should have said "underutilized" above. But the point is very real: applications map stuff all over the place. It's quite rare that they actually fault in those pages.
The stack thing is the obvious example: measure the stack size of your application (easy trick is to subtract the address of a local variable "deep" in the tree from the address of one of the arguments to main, or pthread_create, or wherever the top is). Now check the size of the mapping that contains the stack. And tell me if you want to actually reserve all that memory.
And this isn't about "malloc" anyway. It's about mmap. Mappings are overcommited because mappings are routinely undercommitted. How much stack do you use for each of your threads? How much stack is mapped? If you don't know the answers to these questions (or worse, don't know how to find out), then you need to do a little more research before pontificating on kernel memory allocation strategies.
Sorry, pet peeve. This is one of those areas where too many people think they understand something that they simply don't.