能否使用 setrlimit 强制使 mmap 返回 64GB 范围内的 VA?

我正在处理一台 ARM64 服务器并尝试让一个旧程序工作。 我没有源代码,只有一个二进制文件。

该二进制文件使用 LuaJit,不支持48位虚拟地址(VA)。 然而,我的内核使用48位VA。

LuaJit使用mmap来分配内存。

我希望mmap始终返回一个47位或更低的VA。 我注意到setrlimit可以限制进程的虚拟地址范围。这只是关于配额还是执行VA空间限制呢?

如果它限制VA范围,我认为我可以预加载动态库并在调用mmap之前调用setrlimit。

点赞