Hi Neal,
Neal H. Walfield wrote:
At Thu, 14 Aug 2008 20:23:18 +0200, Norman Feske wrote:
Julian Stecklina wrote:
Is it possible to use a guard page to detect stack overflow? Having a way to implement guard pages using Bastei primitives would be nice for some other projects I have in mind.
Our current plan is to use a dedicated area of the virtual address space to locate the stacks
Why are you special casing stacks? Isn't using something like mmap enough?
Sorry, maybe my explanation was a bit misleading. The mechanism is based on something like mmap (we attach a dataspace to the region map of the process). The addition I mentioned was the signalling mechanism that is missing right now. Regarding the stack allocation, I was just suggesting a user-level policy of where to place stacks within the processes address space. Just for clarity and debugging, it would be nice to have a convention, for example: all stack live in the area 0x40000000 to 0x80000000, each having a maxumum size of 0x100000. When I spoke of dynamically growing stacks, I meant growth only within the bound of 0x100000 minus one page (as a guard). I agree that relocating stacks during the lifetime of a thread sounds like an awkward idea ;-)