mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 11:00:19 +02:00
FEX: Removes legacy kernel 32-bit allocator
We only used this so that our Xavier CI system which were running old kernels could run unit tests. We have now removed the Xaviers from CI and this is no longer necessary. Stop pretending that we support kernels older than 5.0 and allowing this fallback. The 32-bit allocator is still used for the MAP_32BIT mmap flag, so the load bearing code can't be fully removed. Just remove the config and the frontend things using it.
This commit is contained in:
1 parent
b1c3737aef
commit
1c34b25538
5 files changed
+13
-42
No files matched your search
@@ -13,7 +13,6 @@ env:
|
||||
BUILD_TYPE: Release
|
||||
CC: clang
|
||||
CXX: clang++
|
||||
FEX_FORCE32BITALLOCATOR: 1
|
||||
FEX_ENABLEAVX: 1
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -20,7 +20,6 @@ env:
|
||||
BUILD_TYPE: Release
|
||||
CC: clang
|
||||
CXX: clang++
|
||||
FEX_FORCE32BITALLOCATOR: 1
|
||||
FEX_ENABLEAVX: 1
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -254,16 +254,6 @@
|
||||
"Set to false to disable Static Register Allocation"
|
||||
]
|
||||
},
|
||||
"Force32BitAllocator": {
|
||||
"Type": "bool",
|
||||
"Default": "false",
|
||||
"Desc": [
|
||||
"Forces use of the 32-bit allocator on 32-bit applications",
|
||||
"Used to work around ulimit problems of CI runner",
|
||||
"Potentially useful for debugging memory problems",
|
||||
"32-bit allocator is always used if your host kernel is older than 4.17"
|
||||
]
|
||||
},
|
||||
"GlobalJITNaming": {
|
||||
"Type": "bool",
|
||||
"Default": "false",
|
||||
|
||||
@@ -423,26 +423,18 @@ int main(int argc, char **argv, char **const envp) {
|
||||
Base48Bit = FEXCore::Allocator::Steal48BitVA();
|
||||
} else {
|
||||
// Setup our userspace allocator
|
||||
FEXCore::Allocator::SetupHooks();
|
||||
Allocator = FEX::HLE::CreatePassthroughAllocator();
|
||||
|
||||
FEX_CONFIG_OPT(Use32BitAllocator, FORCE32BITALLOCATOR);
|
||||
const bool is_legacy_kernel = (KernelVersion < FEX::HLE::SyscallHandler::KernelVersion(4, 17));
|
||||
|
||||
if (Use32BitAllocator || is_legacy_kernel) {
|
||||
Allocator = FEX::HLE::Create32BitAllocator();
|
||||
} else {
|
||||
FEXCore::Allocator::SetupHooks();
|
||||
Allocator = FEX::HLE::CreatePassthroughAllocator();
|
||||
|
||||
// Now that the upper 32-bit address space is blocked for future allocations,
|
||||
// exhaust all of jemalloc's remaining internal allocations that it reserved before.
|
||||
// TODO: It's unclear how reliably this exhausts those reserves
|
||||
FEXCore::Allocator::YesIKnowImNotSupposedToUseTheGlibcAllocator glibc;
|
||||
void* data;
|
||||
do {
|
||||
data = malloc(0x1);
|
||||
} while (reinterpret_cast<uintptr_t>(data) >> 32 != 0);
|
||||
free(data);
|
||||
}
|
||||
// Now that the upper 32-bit address space is blocked for future allocations,
|
||||
// exhaust all of jemalloc's remaining internal allocations that it reserved before.
|
||||
// TODO: It's unclear how reliably this exhausts those reserves
|
||||
FEXCore::Allocator::YesIKnowImNotSupposedToUseTheGlibcAllocator glibc;
|
||||
void* data;
|
||||
do {
|
||||
data = malloc(0x1);
|
||||
} while (reinterpret_cast<uintptr_t>(data) >> 32 != 0);
|
||||
free(data);
|
||||
}
|
||||
|
||||
// System allocator is now system allocator or FEX
|
||||
|
||||
@@ -223,17 +223,8 @@ int main(int argc, char **argv, char **const envp) {
|
||||
|
||||
if (!Loader.Is64BitMode()) {
|
||||
// Setup our userspace allocator
|
||||
uint32_t KernelVersion = FEX::HLE::SyscallHandler::CalculateHostKernelVersion();
|
||||
if (KernelVersion >= FEX::HLE::SyscallHandler::KernelVersion(4, 17)) {
|
||||
FEXCore::Allocator::SetupHooks();
|
||||
}
|
||||
|
||||
if (KernelVersion < FEX::HLE::SyscallHandler::KernelVersion(4, 17)) {
|
||||
Allocator = FEX::HLE::Create32BitAllocator();
|
||||
}
|
||||
else {
|
||||
Allocator = FEX::HLE::CreatePassthroughAllocator();
|
||||
}
|
||||
FEXCore::Allocator::SetupHooks();
|
||||
Allocator = FEX::HLE::CreatePassthroughAllocator();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in new issue
Block a user