diff options
| author | Maarten ter Huurne <mth@lexx-9122.trinair2002> | 2011-11-30 00:37:57 +0100 |
|---|---|---|
| committer | Maarten ter Huurne <mth@lexx-9122.trinair2002> | 2011-11-30 00:37:57 +0100 |
| commit | 29865e63664d5b513d0f06e9414fbe0b7a43bd49 (patch) | |
| tree | 8a4dbb76eb29e7abc098b229b9c83c2d58f29f13 /Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp | |
| parent | 933d2dde42fe2de7ddea63e1d0492e677ac92b9c (diff) | |
Avoid virtual memory range collision between JIT and emulated RAM.
Passing MAP_FIXED to mmap causes already mapped pages in the requested
region to be replaced. On Mac OS X this caused pages for JIT-generatd
code to appear in the memory range previously auto-allocated for the RAM
of the emulated machine. This led to a hang at boot time. The same problem
can probably occur on FreeBSD, but not on Linux since MAP_32BIT is used
there instead of MAP_FIXED.
The solution is to not use MAP_FIXED, but instead rely on the OS honoring
the hinted address which is below 4 GB: we don't need an exact match,
just a low address.
Diffstat (limited to 'Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp')
0 files changed, 0 insertions, 0 deletions
