[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



Keir Fraser wrote:
> On 19 Sep 2005, at 06:54, Jiang, Yunhong wrote:
> 
>> More exactly should be:
>>      if (!vmx_paging_enabled(d)) {
>>                      get_page for new mfn
>>                      put_page for old mfn
>>      }
> 
> What would old_mfn be in this case?
> 
> If we do any cr3 ref-counting on cr0 writes I would expect it to be:
>   * put_page() on clearing of CR0_PG
>   * get_page() on setting of CR0_PG
> 
> Given that writing cr3 currently does a get_page/put_page regardless
> of the setting of CR0_PG, is there any need to be doing get_page()
> within vmx_set_cr0()?

I'm not sure if the get_page() on vmx_set_cr0 has purpose of sanity check , 
otherwise it can be removed. In fact, I think the put_page has the effect to 
remove it.

> 
> 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?

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.

> 
> Whatever you go for: please send a complete tested patch. :-)

Sure!

> 
>   -- Keir


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.