Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #87401
| From | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Windows does overcommit stacks ! |
| Date | 2022-11-15 16:39 +0100 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <tl0brf$g8n$1@gioia.aioe.org> (permalink) |
| References | <tkhqdn$fho3$1@dont-email.me> <tkuafd$1r9j3$1@dont-email.me> <e62f4acc-90c7-404e-9e02-d3e0f216ff5bn@googlegroups.com> <tl03rq$22kfl$1@dont-email.me> <e7a72924-6467-4127-8df6-98044e0cfc8cn@googlegroups.com> |
Am 15.11.2022 um 15:23 schrieb Michael S: > It seems to me that Öö Tiib is mostly correct. > Except that I don't expect that processes are getting exceptions when > attempting to commit. ... For Linux this is always true with overcomitting enabled, for Windows it it true when one of the guard pages of the stack is hit and the system can't assign a physical page for that guard page. > I expect that software entity that attempts to commit gets error > code from the system call and then, in turn, raises an exception. When you touch a guard page there's no system call. You could simply walk down the whole stack until the last guard page on thread creation if you need reliable stack allocation. > What *does* matter is that over-reserve is not the same as over-commit > ... There's nothing like over-reserving, it's really over-comitting since the actual commit may fail if you touch the region of guard pages of the stack. There are usually two or three guard pages of the stack. I don't know what was Microsoft's decision to have a small amount of guard pages. I'd chosen that the whole stack region would be comittable on access except for the page at the bottom of the stack region. This f.e. would make an alloca() just a subtration from the current stack pointer. Actually there's a special function called which compares the final stack pointer after allocation by the lower stack limit which can be found in the thread information block (fs:[0x10] on x64) and walks the stack pages if appropriate.
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2022-11-10 04:16 +0100
Re: Windows does overcommit stacks ! yx ma <myxfxtstart@gmail.com> - 2022-11-09 23:32 -0800
Re: Windows does overcommit stacks ! Michael S <already5chosen@yahoo.com> - 2022-11-10 02:59 -0800
Re: Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2022-11-10 12:42 +0100
Re: Windows does overcommit stacks ! Michael S <already5chosen@yahoo.com> - 2022-11-10 04:34 -0800
Re: Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2022-11-10 14:08 +0100
Re: Windows does overcommit stacks ! Öö Tiib <ootiib@hot.ee> - 2022-11-10 05:18 -0800
Re: Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2022-11-10 14:36 +0100
Re: Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2022-11-14 22:03 +0100
Re: Windows does overcommit stacks ! Öö Tiib <ootiib@hot.ee> - 2022-11-15 04:09 -0800
Re: Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2022-11-15 14:23 +0100
Re: Windows does overcommit stacks ! Michael S <already5chosen@yahoo.com> - 2022-11-15 06:23 -0800
Re: Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2022-11-15 16:39 +0100
Re: Windows does overcommit stacks ! Bonita Montero <Bonita.Montero@gmail.com> - 2023-03-20 18:45 +0100
csiph-web