うまくいけばタイトルは明らかです。私はmmap()で得られたメモリを持っています。しばらくすると、私はこの範囲内のデータはもう必要ないと結論づけました。しかし、私はまだこの範囲を保つことを望みます。つまり、私はmummap()を呼びたくはありません。私は良い市民になろうと努力しており、必要以上にシステムを交換しないようにしています。バックアップ物理ページが必要な場合、swapにmmap()ページを書き込む必要はないということをLinuxに伝えるには?
場合は指定したページが物理ページに裏打ちされ、カーネルがそれを決定する場合は物理ページは、スワップにそのページを書く気にしないことを必要とされたLinuxカーネルを伝える方法はありますか?
この魔法の関数呼び出しは、指定された仮想ページと物理ページ(存在する場合)を最初にスワップしなくてもマップを破壊すると思います。
を探しているのでしょうか?それはまさにあなたが望むことをしています。後でmmapが同じ仮想アドレスを再利用しないようにするには、munmapの後にMAP_FIXED + PROT_NONEを使ってアドレスを予約することができます。 –
これがこれを行うことをどのように知っていますか(バッキング物理ページを書き換えてスワップします)? –
@ChrisDodd mmap()の後続の呼び出し(適切なパラメータで作られたもの)が同じページを再予約することを保証できるのであれば、munmap()しか使用できませんでした。 2番目のmmap()が成功し、munmap()を使用できなくなってしまうのは、この保証の欠如です。特定のページに有用なデータが含まれていないことが何回もわかっていても、私のチャンクの開始と終了は変わらないことが重要です。 – tgoodhart