3
我正在寻找一种方法来捕捉kvm源中特定gfn上的“阅读”。如何取消映射spte?
看起来功能堆栈通过使用PT_WRITABLE_MASK翻转写入位来移除给定页面的写入权限。因此陷阱写道。
rmap_write_protect(kvm, gfn) --> kvm_mmu_rmap_write_protect(kvm, gfn, slot)
对于捕获读取,我看到等价标志PM_PRESENT_MASK。因此,一种方法可能是编写类似于上面的包装例程来翻转读取(存在)和写入位。或者只是使用下面的函数来删除spte而已? drop_spte()
以上两种方法之一是否需要kvm_flush_remote_tlbs()?
您是否发现了有关您的问题的更多信息?如果你取得了一些进展,更新这个问题可能是一个好主意,因为它可以解决问题。你有没有尝试过你提出的各种方法?一个小测试可能会让其他人更容易帮助你。最后,这听起来像你可能有几个问题。你能缩小到只有一个吗? –