Avi Kivity <avi <at> redhat.com> writes: > > On 11/16/2011 06:28 AM, Takuya Yoshikawa wrote: > > (2011/11/14 21:39), Avi Kivity wrote: > >> There was a patchset from Peter Zijlstra that converted mmu notifiers to > >> be preemptible, with that, we can convert the mmu spinlock to a mutex, > >> I'll see what happened to it. > > > > Interesting! > > > >> There is a third method of doing write protection, and that is by > >> write-protecting at the higher levels of the paging hierarchy. The > >> advantage there is that write protection is O(1) no matter how large the > >> guest is, or the number of dirty pages. > >> > >> To write protect all guest memory, we just write protect the 512 PTEs at > >> the very top, and leave the rest alone. When the guest writes to a > >> page, we allow writes for the top-level PTE that faulted, and > >> write-protect all the PTEs that it points to. > > > > One important point is that the guest, not GET DIRTY LOG caller, will pay > > for the write protection at the timing of faults. > > I don't think there is a significant difference. The number of write > faults does not change. The amount of work done per fault does, but not > by much, thanks to the writeable bitmap. > Avi, I think it needs more thinking if only less page need be write protected. For example, framebuffer-based device used by Xwindow, only ~64M pages needs to be write protected, but in your way, guest will get write page fault on all memory? Hmm? It has some tricks but i missed? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html