私がやりたいことはtmpfsにファイルを入れ、すべてのファイル(すべてのページ)が同じNUMAノードにあることを確認することです。まず、簡単だと思いました。mmap()
tmpfsファイルがあり、それをMAP_SHARED
使用して目的mbind()
のノードにバインドしてからコピーするだけです。ただし、mbind() のマニュアルページではこのアプローチを明示的に除外します。
NUMA policy is not supported on a memory-mapped file range
that was mapped with the MAP_SHARED flag.
マブソサ!マニュアルmbind()
ページには、共有マッピングの場合はプロセスメモリポリシー(使用)にのみ依存する可能性がありますset_mempolicy()
。しかし、これは理想的なものから離れています。私はマルチスレッドアプリケーションを実行しており、どのスレッドがコピーを実行しているのか気にしたくありません。むしろ、メモリポリシーがtmpfsに縛られていることを願っています。文書代わりに私の人生をより簡単にしてください。
この問題を解決する方法について考えている人はいますか?