[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Re: Making pages writable again in paging_log_dirty mode
> That looks quite strange to me; it will select every dirty page that is > not currently writeable Ah yes, I should probably explain what I'm doing. I'm using the log-dirty mode to catch any writes to pages that I haven't yet "copied" via a background copy mechanism, similar to the live migration copy. If I have copied it already, then I manually mark it dirty to indicate that it can be made writable again. That's what I'm trying to do in this code. > - regardless of whether the guest asked for a writeable mapping > (e.g. user-mode read-only maps of kernel structures); and > - regardless of whether it's currently shadowed! Yeah, I've tried adding checks as well (not seen in this version of the code) to first check the guest PTE to see if it's writable and to check to see if it's shadowed. But I also thought that if I check that that mapped page type was PGT_writable_page with a type count of 0, I could assume that the guest PTE mapped the page as writable, no? >> && get_page_type(page, PGT_writable_page)) >> { >> shadow_l1e_t rw_sl1e = >> shadow_l1e_add_flags(*sl1e, _PAGE_RW); > > Did you by any chance make this shadow_l1e_add_flags() operator by > copying l1e_add_flags from asm/page.h? That's a macro which modifies > its arguments, which you are definitely not allowed to do to a live > shadow pagetable. :) Now this is probably a big problem, that's exactly what I'm doing and I didn't think about that! I'll fix that and see what happens. Thanks for all the help! Mike _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |