HMM (Heterogeneous Memory Management) v7

バイスアドレス空間とCPUのプロセスアドレス空間を、ミラーする仕組みである。ただし、これをするとうれしいアプリケーションが今一歩わからない。HMMの参考文献のPDFの最後のページにユースケースが書いてはあるのだけど。そんなにGPU前提のアプリケーションを書くのが楽になるのだろうか?
さて、MMU Notifier自体は、該当メモリがスワップした等を連絡するための仕組みである。これ自体は、ホストからゲストに通知するためKVM用に導入されたが、InfinibandとかGPUとかのMMU状態通知でも使えることは、そのころからわかっていた話である。

  • mmu_notifierのパッチ2つは、mmu_eventの追加および、アドレスレンジと左記イベントをまとめた構造体の導入である。そして、mmu_notifierの変更の影響は、ハイパーバイザとドライバ周り
  • HMMの基本構造は、hmm_mirror構造体およびhmm_device構造体、そしてページテーブルは、hmm_pt構造体からなる。そして、HMMはmmu_notifierからのイベントをhmm_event構造体を通して、デバイスのページとCPUのページのミラーリング操作する。
  • これって、NVIDIAも絡んでいるにもかかわらず、そのソースコードがないのはどうしてなんだろう?