Messages in this thread | | | Date | Mon, 25 Oct 2010 16:27:34 +0900 | From | Takuya Yoshikawa <> | Subject | Re: [PATCH RFC] kvm: write protect memory after slot swap |
| |
On Mon, 25 Oct 2010 03:21:24 +0200 "Michael S. Tsirkin" <mst@redhat.com> wrote:
> I have observed the following bug trigger: > > 1. userspace calls GET_DIRTY_LOG > 2. kvm_mmu_slot_remove_write_access is called and makes a page ro > 3. page fault happens and makes the page writeable > fault is logged in the bitmap appropriately
This may be the reason why my commit is a corruption magnifier. My patch moved the vmalloc() right after kvm_mmu_slot_remove_write_access() and made this chance bigger: because vmalloc() takes some time.
Thanks, Takuya
> 4. kvm_vm_ioctl_get_dirty_log swaps slot pointers > > a lot of time passes > > 5. guest writes into the page > 6. userspace calls GET_DIRTY_LOG > > At point (5), bitmap is clean and page is writeable, > thus, guest modification of memory is not logged > and GET_DIRTY_LOG returns an empty bitmap. > > The rule is that all pages are either dirty in the current bitmap, > or write-protected, which is violated here.
| |