IB ネットワークを介してファイルを交換する必要がある補足プロセスがあります。その後、ファイルは他のプロセスによって使用されます。
ワークフローは次のとおりです。
- /dev/shm にファイルを作成する
- ファイルのサイズを適切に変更する
- プロセスの VM 内のファイルをマップする
- mmaped 領域を ibv_reg_mr で登録します
- データ転送の RDMA 操作を開始する
私のスキームのボトルネックは ib_reg_mr であることが判明しました (3Gb メモリの登録に 1.78 秒かかると個別に測定しました)。プロセスのアドレス空間へのメモリ領域のマッピングをトリガーするようです。残念ながら、受信プロセスはこのメモリを使用しないため、この操作は必要ありません。メモリは、後で他のプロセスでマップして使用する必要があります。
そのため、受信プロセスのページテーブルを変更することを回避するのが賢明だと思いましたが、それが可能かどうかはわかりませんでした。
メモリ領域をプロセスのアドレス空間にマッピングせずにデータ転送を開始する方法があれば教えていただけますか?