WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] [PATCH][VT] Patch to allow VMX domainsto be destroyedor

To: "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx>
Subject: RE: [Xen-devel] [PATCH][VT] Patch to allow VMX domainsto be destroyedor shut down cleanly
From: "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>
Date: Tue, 20 Sep 2005 16:51:19 +0800
Cc: Khoa Huynh <khoa@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 20 Sep 2005 08:49:10 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcW9Fr0aX/RccrgtTXGVb46nmgogagAqTTZQ
Thread-topic: [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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel