threads/160708: Bypass process stack quota :)
jhb at freebsd.org
Mon Sep 19 12:51:22 UTC 2011
On Saturday, September 17, 2011 7:50:08 am Michael Pounov wrote:
> The following reply was made to PR threads/160708; it has been noted by
> From: Michael Pounov <misho at elwix.org>
> To: freebsd-gnats-submit at freebsd.org
> Subject: Re: threads/160708: Bypass process stack quota :)
> Date: Sat, 17 Sep 2011 14:26:11 +0300
> Hmm, you no so right Peter.
> Yes I can move esp pointer in any other address, but please
> start program and see address of allocated memory for every thread.
> All this allocations is made in upper memory called stack.
> Try same alloca() in main program thread and you see how
> system terminate program if you going over stack limit.
It's not very practical to apply this limit to multithreaded apps. Would you
want it to be a global limit (i.e. all stacks summed together must be <=
limit) or a per-thread limit (i.e. each thread's stack must be <= limit).
Also, given that RLIMIT_DATA is now obsolete (since malloc() defaults to using
MAP_ANON with mmap() rather than sbrk()), using RLIMIT_AS is probably the
right thing if you are trying to prevent local DOS.
More information about the freebsd-threads