Jiang, Yunhong
2005-Sep-20 08:51 UTC
RE: [Xen-devel] [PATCH][VT] Patch to allow VMX domainsto be destroyedor shut down cleanly
Hi, Keir Do you mean a patch like this? Thanks Yunhong Jiang --- a/xen/arch/x86/vmx.c Mon Sep 19 13:24:31 2005 +++ b/xen/arch/x86/vmx.c Tue Sep 20 16:47:34 2005 @@ -1100,6 +1100,10 @@ d->arch.arch_vmx.cpu_cr3, mfn); } + if(!((value & X86_CR0_PE) && (value & X86_CR0_PG)) && paging_enabled) + if(d->arch.arch_vmx.cpu_cr3) + put_page(pfn_to_page(get_mfn_from_pfn( + d->arch.arch_vmx.cpu_cr3 >> PAGE_SHIFT))); /* * VMX does not implement real-mode virtualization. We emulate * real-mode by performing a world switch to VMXAssist whenever Keir Fraser wrote:> On 19 Sep 2005, at 11:52, Jiang, Yunhong wrote: > >>> I think it''s more correct to do get/put in vmx_set_cr0 (at that >>> point we can know what format the pagetables should be, for example >>> (32/32p/64). But I think it''s a bigger cleanup patch. >> >> Do you mean put all get/put on vmx_set_cr0 ? even for paging enabled >> case? > > No, I mean that get/put on cr3 change (or guest destruction) should be > gated on CR0_PG. Then, additionally, get or put is required when > CR0_PG is toggled. > >> And there is one more issue .If the guest is destroyed before the >> kernel enabling paging, how about the page pointed by cr3? It may >> cause one referece count left. The reason is, currently when destroy >> domain, only domain->guest_table is released. However, if the paging >> is not enabled, then the get_page on vmx_set_cr0 has no corresponding >> put_page, which may cause problem. Hope comments on this point. > > Doing what I describe above would fix this: CR0_PG would be clear, so > put_page() would not happen. > >>> >>> Whatever you go for: please send a complete tested patch. :-) >> >> Sureļ¼ > > Thanks! > > -- Keir_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2005-Sep-20 09:08 UTC
Re: [Xen-devel] [PATCH][VT] Patch to allow VMX domainsto be destroyedor shut down cleanly
On 20 Sep 2005, at 09:51, Jiang, Yunhong wrote:> Hi, Keir > Do you mean a patch like this?Something like that. Should get_page/put_page in the code that deals with cr3 updates also be gated on paging_enabled? -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel