[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] bogus gfn - mfn - gfn - mfn checks in guest_physmap_add_entry
Hello, what is the purpose of the mfn_to_gfn() check in guest_physmap_add_entry()? This function gets a fresh mfn and its gfn passed to update the global p2m state. But before doing that, it checks wether that fresh mfn maps still to some gfn. If it does, it checks if that gfn maps to any mfn. If it doesnt, Xen crashes with an assert. Now, if that mfn was part of an old guest, should that old guest cleanup all of its mfns and update the machine_to_phys_mapping[]? Appearently that rarely happens. And if there is still some random gfn number in that array, the function tries to see what happens with this number in the current guests context. IF that number happens to be a gfn in paged-out state, there will be no mfn. So the ASSERT triggers. I would guess that if guest_physmap_add_entry() gets a page with type p2m_ram_rw, nothing else can own that page. Is that right? If so, this ASSERT or most of the loop can be removed. Olaf _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |