x86_64/Linux で tmpfs と NUMA で共有メモリを使用する

x86_64/Linux で tmpfs と NUMA で共有メモリを使用する

私がやりたいことは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に縛られていることを願っています。文書代わりに私の人生をより簡単にしてください。

この問題を解決する方法について考えている人はいますか?

ベストアンサー1

おすすめ記事