KVM Chainsawは、kvm_mmu構造が複数の用途を単一の構造で統合することから生じる複雑さを解決するために開発された。この構造は、ゲストページテーブルのフォーマットを定義し、これらのテーブルをナビゲートし、ページテーブルを構築する役割を担っていた。KVM Chainsawは、この構造を3つの別々のコンポーネントに分割し、よりモジュール化された形にする:kvm_pagewalk、kvm_mmu、kvm_page_format。

kvm_pagewalkは、ページテーブルをナビゲートするために使用され、各vCPUに対して2つのナビゲーション方法を提供する:gva_walkとngpa_walk。kvm_mmuは、ページテーブルの構築機能を担い、この処理にページテーブルのナビゲーションを使用する。kvm_page_formatは、KVMが現在のPTE上で動作することを可能にし、permission_mask()コードをstruct rsvd_bits_validateと統合する。

この再構造化は、既存の複雑さを減らすだけでなく、新しい機能の追加も可能にする。例えば、最近追加された修正は、SPTEのXS!=XU状態をサポートすることで、KVMに新しい機能を追加する。これらの機能は、Linux 7.3のKVMユーザーにとって、より柔軟で強力な環境を提供する。