私は ARM64 サーバーで作業しており、古いプログラムを機能させようとしています。ソースコードは必要ありません。バイナリだけです。
バイナリは、48 ビット仮想アドレス (VA) をサポートしない LuaJit を使用します。ただし、私のカーネルは 48 ビット VA を使用しています。
LuaJit は mmap を使用してメモリを割り当てます。
mmap が常に 47 ビット以下の VA を返すようにしたい。setrlimit がプロセスの仮想アドレス範囲を制限できることに気付きました。クォータに関するものですか、それとも VA スペースの制限を強制するものですか?
VA 範囲を制限する場合は、動的ライブラリをプリロードして setrlimit を呼び出して mmap を呼び出すことができると思います。