Title | CET can't safely make use of the top 2GiB of memory on 32-bit Windows |
Status | closed |
Priority | essential |
Assigned user | Richard Brooksby |
Organization | Ravenbrook |
Description | CET would like to make use of the extra 1GiB of memory on 32-bit Windows (2GiB when on 32-bit emulation on 64-bit windows) provided by the LARGEADDRESSAWARE option. However, some of its third party DLLs crash if they allocate objects above 0x80000000. |
Analysis | When on 32-bit Windows, the MPS could allocate the top 1GiB of address space, forcing all other allocations below 0x80000000. Similarly, when on WOW64, it could allocate the top 2GiB. It can do this by using the MEM_TOP_DOWN option to VirtualAlloc when creating an arena chunk. |
How found | unknown |
Evidence | "First tests with /LARGEADDRESSAWARE" <https://info.ravenbrook.com/mail/2012/09/14/07-51-31/0/ > |
Observed in | 1.108.0 |
Created by | Richard Brooksby |
Created on | 2013-05-01 16:32:29 |
Last modified by | Gareth Rees |
Last modified on | 2013-06-04 15:18:19 |
History | 2013-05-01 RB Created to connect related Perforce work with justification. |
Change | Effect | Date | User | Description |
---|---|---|---|---|
180929 | closed | 2013-02-07 16:41:33 | Richard Brooksby | Restricting MEM_TOP_DOWN use to 32-bit Windows. |
180920 | closed | 2013-02-06 17:51:47 | Richard Brooksby | Patching the main Windows VirtualAlloc to allocate address space from the top down, allowing an executable linked with /LARGEADDRESSAWARE to use the top one or two GiB of address space. This is a patch for CET that will need to be generalised when merging. |