[Bug 48172] 32-bit wine is unable to allocate a continuous 1.5GB block of memory under 64-bit Linux with a lot of RAM

WineHQ Bugzilla wine-bugs at winehq.org
Sun Mar 1 12:13:47 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=48172

Stefan Dösinger <stefan at codeweavers.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stefan at codeweavers.com

--- Comment #4 from Stefan Dösinger <stefan at codeweavers.com> ---
A 32 bit process has only 4GB of available address space no matter how much
physical RAM you have. Even if you have less than that a process can
theoretically alloc 4 GB, it might just lead to heavy swapping.

If you want 1.5 gb continuous memory it is vital that the free space is not
fragmented. Windows (and thus wine) have a fixed allocation around 2gb at
0x7ffe0000 (KSHARED_USER_DATA), so you won't be able to get an allocation > 2GB
no matter what. The area below 2 GB is sprinkled with Windows DLLs at fixed
load addresses. The area above 2 GB will likely have a pile of Linux libs
loaded. Address space layout randomization (a security feature) is likely to
sprinkle libs everywhere.

/proc/<pid>/maps shows you what is loaded where. I guess disable ASLR will
help, at the cost of making your system more vulnerable to buffer overflow
attacks. On 32 bit Windows ASLR is somewhat limited because many windows libs
have a hardcoded load address and applications depend on it.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list